Python Directory and Files Management

I den här handledningen lär du dig om fil- och kataloghantering i Python, dvs. skapa en katalog, byta namn på den, lista alla kataloger och arbeta med dem.

Video: Python os-modul

Python-katalog

Om det finns ett stort antal filer att hantera i vårt Python-program kan vi ordna vår kod i olika kataloger för att göra saker mer hanterbara.

En katalog eller mapp är en samling filer och underkataloger. Python har osmodulen som ger oss många användbara metoder för att arbeta med kataloger (och filer också).

Skaffa aktuell katalog

Vi kan hämta den nuvarande arbetskatalogen med hjälp getcwd()av osmodulen.

Den här metoden returnerar den aktuella arbetskatalogen i form av en sträng. Vi kan också använda getcwdb()metoden för att få den som byte-objekt.

 >>> import os >>> os.getcwd() 'C:\Program Files\PyScripter' >>> os.getcwdb() b'C:\Program Files\PyScripter'

Extra backslash innebär en escape-sekvens. Den print()funktionen kommer att göra detta på rätt sätt.

 >>> print(os.getcwd()) C:Program FilesPyScripter

Ändra katalog

Vi kan ändra den nuvarande arbetskatalogen med chdir()metoden.

Den nya sökvägen som vi vill ändra till måste anges som en sträng till den här metoden. Vi kan använda både framåt-snedstreck /eller bakåt-snedstreck för att separera vägelementen.

Det är säkrare att använda en escape-sekvens när du använder snedstrecket bakåt.

 >>> os.chdir('C:\Python33') >>> print(os.getcwd()) C:Python33

Lista kataloger och filer

Alla filer och underkataloger i en katalog kan hämtas med listdir()metoden.

Denna metod tar in en sökväg och returnerar en lista med underkataloger och filer i den sökvägen. Om ingen sökväg anges anger den listan med underkataloger och filer från den aktuella arbetskatalogen.

 >>> print(os.getcwd()) C:Python33 >>> os.listdir() ('DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools') >>> os.listdir('G:\') ('$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information')

Skapa en ny katalog

Vi kan skapa en ny katalog med mkdir()metoden.

Den här metoden går i vägen för den nya katalogen. Om hela sökvägen inte anges skapas den nya katalogen i den aktuella arbetskatalogen.

 >>> os.mkdir('test') >>> os.listdir() ('test')

Byta namn på en katalog eller en fil

Den rename()metod kan byta namn på en katalog eller en fil.

För att byta namn på någon katalog eller fil rename()tar metoden två grundargument: det gamla namnet som det första argumentet och det nya namnet som det andra argumentet.

 >>> os.listdir() ('test') >>> os.rename('test','new_one') >>> os.listdir() ('new_one')

Ta bort katalog eller fil

En fil kan tas bort (tas bort) med remove()metoden.

På samma rmdir()sätt tar metoden bort en tom katalog.

 >>> os.listdir() ('new_one', 'old.txt') >>> os.remove('old.txt') >>> os.listdir() ('new_one') >>> os.rmdir('new_one') >>> os.listdir() ()

Obs : Den rmdir()metod kan bara ta bort tomma kataloger.

För att ta bort en katalog som inte är tom kan vi använda rmtree()metoden inuti shutilmodulen.

 >>> os.listdir() ('test') >>> os.rmdir('test') Traceback (most recent call last):… OSError: (WinError 145) The directory is not empty: 'test' >>> import shutil >>> shutil.rmtree('test') >>> os.listdir() ()

Intressanta artiklar...