Zanurkuj w Pythonie/Praca z katalogami: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
częściowe tłumaczenie
Piotr (dyskusja | edycje)
Nie podano opisu zmian
Linia 113:
# Jak wcześniej powiedzieliśmy, <tt>os.listdir</tt> po prostu z podanej ścieżki do folderu, zwraca wszystkie pliki i foldery, które się w nim znajdują.
# Z innej strony, moduł <tt>glob</tt> na podstawie podanego wyrażenia (ang. ''wildcard''), zwraca pełne ścieżki wszystkich plików, które spełniają te wyrażenie. Tutaj wyrażenie jest ścieżką do katalogu plus "*.mp3", który będzie dopasowywał wszystkie pliki <tt class="lang-none">.mp3</tt>. Dodajmy, że każdy element zwracanej listy jest już pełną ścieżką do pliku.
# Jeśli chcesz znaleźć wszystkie pliki w określonym folderze, gdzie nazwa zaczyna się od "s", a kończy na ".mp3", możemy to zrobić w ten sposób.
# If you want to find all the files in a specific directory that start with "s" and end with ".mp3", you can do that too.
# Teraz otrzymujemy taki scenarius: mamy folder z muzyką z kilkoma pod folderami, wewnątrz których są pliki <tt class="lang-none">.mp3</tt>. Możemy dostać listę wszystkich tych plików za pomocą jednego wywołania <tt>glob</tt>, wykorzystując połączenie dwóch wyrażeń. Pierwszym jest <tt>"*.mp3"</tt> (wyszukuje pliki .mp3), a drugim są same w sobie ścieżki do katalogów, aby przetworzyć każdy podkatalog w <tt class="lang-none">c:\music</tt>. Ta prosto wyglądająca funkcja daje nam niesamowite możliwości!
# Now consider this scenario: you have a music directory, with several subdirectories within it, with .mp3 files within each subdirectory. You can get a list of all of those with a single call to glob, by using two wildcards at once. One wildcard is the "*.mp3" (to match .mp3 files), and one wildcard is within the directory path itself, to match any subdirectory within c:\music. That's a crazy amount of power packed into one deceptively simple-looking function!
 
<noinclude>