Python os Modülü ile Dosya Yönetimi
Bu eğitimde, Python’da dosya ve dizin yönetimi, yani bir dizin oluşturma, onu yeniden adlandırma, tüm dizinleri listeleme ve onlarla çalışma hakkında bilgi edineceksiniz.
Python Dizini
Python programımızda işlenecek çok sayıda dosya varsa , işleri daha yönetilebilir hale getirmek için kodumuzu farklı dizinler içinde düzenleyebiliriz.
Bir dizin veya klasör, bir dosya ve alt dizin koleksiyonudur. Python, dizinlerle (ve dosyalarla) çalışmak için bize birçok yararlı yöntem sağlayan os
modüle sahiptir.
Geçerli Dizini Al
Modülün getcwd()
yöntemini kullanarak mevcut çalışma dizinini alabiliriz .os
Bu yöntem, geçerli çalışma dizinini bir dize biçiminde döndürür. getcwdb()
Metodunu bytes nesnesi olarak almak için de kullanabiliriz .
1 2 3 4 5 6 7 | >>> import os >>> os.getcwd() 'C:\\Program Files\\PyScripter' >>> os.getcwdb() b'C:\\Program Files\\PyScripter' |
Fazladan ters eğik çizgi, bir kaçış dizisini ifade eder. İşlev print()
bunu düzgün bir şekilde işleyecektir.
1 2 | >>> print(os.getcwd()) C:\Program Files\PyScripter |
Dizin Değiştirme
chdir()
Yöntemi kullanarak mevcut çalışma dizinini değiştirebiliriz .
Değiştirmek istediğimiz yeni yol, bu yönteme bir dize olarak sağlanmalıdır. Yol öğelerini ayırmak için hem eğik çizgi hem de ters /
eğik çizgi kullanabiliriz.\
Eğik çizgiyi kullanırken bir kaçış dizisi kullanmak daha güvenlidir.
1 2 3 4 | >>> os.chdir('C:\\Python33') >>> print(os.getcwd()) C:\Python33 |
Dizinleri ve Dosyaları Listeleme
Bir dizindeki tüm dosyalar ve alt dizinler, listdir()
yöntem kullanılarak alınabilir.
Bu yöntem bir yolu alır ve bu yoldaki alt dizinlerin ve dosyaların bir listesini döndürür. Yol belirtilmezse, geçerli çalışma dizinindeki alt dizinlerin ve dosyaların listesini döndürür.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | >>> 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'] |
Yeni Dizin Oluşturma
mkdir()
Metodu kullanarak yeni bir dizin oluşturabiliriz .
Bu yöntem, yeni dizinin yolunu alır. Tam yol belirtilmezse, geçerli çalışma dizininde yeni dizin oluşturulur.
1 2 3 4 | >>> os.mkdir('test') >>> os.listdir() ['test'] |
Bir Dizini veya Dosyayı Yeniden Adlandırma
Yöntem rename()
, bir dizini veya dosyayı yeniden adlandırabilir.
Herhangi bir dizini veya dosyayı yeniden adlandırmak için, rename()
yöntem iki temel argüman alır: ilk argüman olarak eski isim ve ikinci argüman olarak yeni isim.
1 2 3 4 5 6 7 | >>> os.listdir() ['test'] >>> os.rename('test','new_one') >>> os.listdir() ['new_one'] |
Dizin veya Dosyayı Kaldırma
remove()
Yöntem kullanılarak bir dosya kaldırılabilir (silinebilir) .
Benzer şekilde, rmdir()
yöntem boş bir dizini kaldırır.
1 2 3 4 5 6 7 8 9 10 | >>> os.listdir() ['new_one', 'old.txt'] >>> os.remove('old.txt') >>> os.listdir() ['new_one'] >>> os.rmdir('new_one') >>> os.listdir() [] |
Not : rmdir()
Yöntem yalnızca boş dizinleri kaldırabilir.
Boş olmayan bir dizini kaldırmak için modül rmtree()
içindeki yöntemi kullanabiliriz.shutil
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> 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() [] |