Python-directory en bestandsbeheer

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 osmodule 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 osmodule.

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 shutilmodule 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() ()

Interessante artikelen...