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

Usunięta treść Dodana treść
Sasek (dyskusja | edycje)
tłumaczenie
Piotr (dyskusja | edycje)
tłumaczenie
Linia 70:
# <tt>os.path</tt> zawiera też funkję <tt>isdir</tt>, zwracającą <tt>1</tt> jeśli ścieżka reprezentuje katalog i <tt>0</tt> w innym przypadku. Możesz jej użyć do uzyskania listy podkatalogów.
 
'''ExamplePrzykład 6.19. ListingListowanie Directorieszawartości infolderu w <tt>fileinfo.py</tt>'''
 
def listDirectory(directory, fileExtList):
Linia 80:
if os.path.splitext(f)[1] in fileExtList] #(3) (4) (5)
 
# <tt>os.listdir(directory)</tt> returnszwraca alistę listwszystkich ofplików alli thefolderów filesw and folders infolderze <tt>directory</tt>.
# Iterując listę za pomocą zmiennej <tt>f</tt>, wykorzystujemy <tt>os.path.normcase(f)</tt>, aby znormalizować wielkość liter zgodnie z domyślnym systemem operacyjnym. Funkcja <tt>normcase</tt> jest użyteczną, prostą funkcją, która stanowi równoważnik pomiędzy systemami operacyjnymi, w których wielkość liter w nazwie pliku nie ma znaczenia, w którym np. <tt class="lang-none">mahadeva.mp3</tt> i <tt class="lang-none">mahadeva.MP3</tt> są takimi samymi plikami. Na przykład w Windowsie i Mac OS, <tt>normcase</tt> będzie konwertował całą nazwę pliku na małe litery, w systemach kompatybilnych z UNIX-em funkcja ta będzie zwracała niezmienioną nazwę pliku.
# Iterating through the list with f, you use os.path.normcase(f) to normalize the case according to operating system defaults. normcase is a useful little function that compensates for case-insensitive operating systems that think that mahadeva.mp3 and mahadeva.MP3 are the same file. For instance, on Windows and Mac OS, normcase will convert the entire filename to lowercase; on UNIX-compatible systems, it will return the filename unchanged.
# IteratingIterując throughponownie thelistę normalizedza list withpomocą <tt>f again</tt>, you usewykorzystujemy <tt>os.path.splitext(f)</tt>, aby topodzielić splitnazwę eachpliku filenamena intonazwę namei andjej extensionrozszerzenie.
# ForDla eachkażdego filepliku sprawdzamy, youczy seerozszerzenie ifjest thew extensionliście isplików, ino thektóre listmamy ofsię filetroszczyć extensions(czyli you care about (<tt>fileExtList</tt>, whichktóry waszostał passedprzekazany to thedo <tt>listDirectory function</tt>).
# ForDla eachkażdego filepliku, youo carektóry aboutsię troszczymy, you usewykorzystujemy <tt>os.path.join(directory, f)</tt>, toaby constructskonstruować the full pathname of the file,pełną andścieżkę returnpliku ai listzwrócić oflistę thezawierającą fullpełne pathnamesścieżki.
 
Note
{{Infobox|
Whenever possible, you should use the functions in os and os.path for file, directory, and path manipulations. These modules are wrappers for platform-specific modules, so functions like os.path.split work on UNIX, Windows, Mac OS, and any other platform supported by Python.
}}
 
There is one other way to get the contents of a directory. It's very powerful, and it uses the sort of wildcards that you may already be familiar with from working on the command line.