Python - Direktorij i upravljanje datotekama (Directory and Files Management)


Python direktorij

Ako postoji velik broj datoteka kojima se može rukovati u našem Python programu, možemo rasporediti naš kod unutar različitih direktorija kako bismo stvari učinili upravljivijima. Direktorij ili mapa je zbirka datoteka i poddirektorijuma. Python ima os modul koji nam pruža mnoge korisne metode za rad s direktorijima (i datotekama takođe).



Nabavite trenutni direktorij

Sadašnji radni direktorij možemo dobiti pomoću metode getcwd() os modula. Ova metoda vraća trenutni radni direktorij u obliku stringa. Takođe možemo koristiti metodu getcwdb() da bismo je dobili kao objekt bajtova.

>>> import os

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

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

Dodatna kosa kosa crta podrazumijeva sekvencu bijega. Funkcija print() to će ispravno prikazati.

>>> print(os.getcwd())
C:\Program Files\PyScripter


Promjena direktorija

Trenutni radni direktorij možemo promijeniti pomoću metode chdir(). Nova staza u koju se želimo promijeniti mora biti dostavljena kao string ove metode. Za odvajanje elemenata putanje možemo koristiti kosu crtu naprijed / ili kosu crtu nazad \. Sigurnije je koristiti sekvencu za bijeg kada se koristi kosa crta.

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

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


Popis direktorija i datoteka

Sve datoteke i poddirektoriji unutar direktorija mogu se dohvatiti metodom listdir(). Ova metoda uzima putanju i vraća listu poddirektorijuma i datoteka na toj putanji. Ako nije navedena putanja, vraća listu poddirektorijuma i datoteka iz trenutnog radnog direktorija.

>>> 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']


Kreiranje novog direktorija

Možemo napraviti novi direktorij pomoću metode mkdir(). Ova metoda uzima putanju nove mape. Ako puna putanja nije navedena, novi direktorij se kreira u trenutnom radnom direktoriju.

>>> os.mkdir('test')

>>> os.listdir()
['test']


Preimenovanje direktorija ili datoteke

Metoda rename() može preimenovati direktorij ili datoteku. Za preimenovanje bilo kog direktorija ili datoteke, metoda rename() uzima dva osnovna argumenta: staro ime kao prvi argument i novo ime kao drugi argument.

>>> os.listdir()
['test']

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

>>> os.listdir()
['new_one']


Uklanjanje direktorija ili datoteke

Datoteka se može ukloniti (izbrisati) metodom remove(). Slično tome, metoda rmdir() uklanja prazan direktorij.

>>> os.listdir()
['new_one', 'old.txt']

>>> os.remove('old.txt')
>>> os.listdir()
['new_one']

>>> os.rmdir('new_one')
>>> os.listdir()
[]

Da bismo uklonili neprazan direktorij, možemo koristiti rmtree() metodu unutar modula shutil.

>>> 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()
[]