In deze tutorial leer je over bestands- en directorybeheer in Python, dat wil zeggen het maken van een directory, deze hernoemen, een lijst van alle directories en het ermee werken.
Video: Python OS-module
Python-map
Als er in ons Python-programma een groot aantal bestanden moet worden verwerkt, kunnen we onze code in verschillende mappen rangschikken om de zaken beter beheersbaar te maken.
Een map of map is een verzameling bestanden en submappen. Python heeft de os
module die ons veel handige methoden biedt om met mappen (en ook bestanden) te werken.
Haal de huidige directory op
We kunnen de huidige werkdirectory ophalen met behulp van de getcwd()
methode van de os
module.
Deze methode retourneert de huidige werkdirectory in de vorm van een string. We kunnen de getcwdb()
methode ook gebruiken om het als bytes-object op te halen.
>>> import os >>> os.getcwd() 'C:\Program Files\PyScripter' >>> os.getcwdb() b'C:\Program Files\PyScripter'
De extra backslash impliceert een escape-reeks. De print()
functie zal dit correct weergeven.
>>> print(os.getcwd()) C:Program FilesPyScripter
Directory wijzigen
We kunnen de huidige werkdirectory wijzigen door de chdir()
methode te gebruiken.
Het nieuwe pad waarnaar we willen veranderen, moet als string bij deze methode worden opgegeven. We kunnen zowel de voorwaartse slash /
als de achterwaartse slash gebruiken om de padelementen te scheiden.
Het is veiliger om een escape-reeks te gebruiken bij het gebruik van de backward slash.
>>> os.chdir('C:\Python33') >>> print(os.getcwd()) C:Python33
Lijst met mappen en bestanden
Alle bestanden en submappen in een map kunnen met de listdir()
methode worden opgehaald .
Deze methode neemt een pad aan en retourneert een lijst met submappen en bestanden in dat pad. Als er geen pad is opgegeven, retourneert het de lijst met submappen en bestanden uit de huidige werkmap.
>>> 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')
Een nieuwe directory maken
We kunnen een nieuwe map maken met behulp van de mkdir()
methode.
Deze methode neemt het pad van de nieuwe directory over. Als het volledige pad niet is opgegeven, wordt de nieuwe map gemaakt in de huidige werkmap.
>>> os.mkdir('test') >>> os.listdir() ('test')
Een directory of bestand hernoemen
De rename()
methode kan een map of een bestand hernoemen.
Voor het hernoemen van een map of bestand heeft de rename()
methode twee basisargumenten: de oude naam als het eerste argument en de nieuwe naam als het tweede argument.
>>> os.listdir() ('test') >>> os.rename('test','new_one') >>> os.listdir() ('new_one')
Directory of bestand verwijderen
Een bestand kan worden verwijderd (verwijderd) met behulp van de remove()
methode.
Evenzo rmdir()
verwijdert de methode een lege map.
>>> os.listdir() ('new_one', 'old.txt') >>> os.remove('old.txt') >>> os.listdir() ('new_one') >>> os.rmdir('new_one') >>> os.listdir() ()
Opmerking : de rmdir()
methode kan alleen lege mappen verwijderen.
Om een niet-lege map te verwijderen, kunnen we de rmtree()
methode binnen de shutil
module gebruiken.
>>> 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() ()