Bu makalede, Python’da dosya ve dizin yönetimi hakkında bilgi edineceksiniz, yani bir dizin oluşturma, yeniden adlandırma, tüm dizinleri listeleme ve onlarla çalışma gibi kavramları bu yazıda bulacaksınız.
Python’da Dizin Nedir?
Python programınızda işlenecek çok sayıda dosya varsa, işleri daha yönetilebilir hale getirmek için kodunuzu farklı dizinlerde düzenleyebilirsiniz.
Dizin veya klasör, dosyalar ve alt dizinlerden oluşan bir koleksiyondur. Python, dizinlerle (ve dosyalarla) çalışmak için bize birçok yararlı yöntem sağlayan os modülüne sahiptir.
Mevcut Dizini Al
Mevcut çalışma dizinini getcwd()
yöntemini kullanarak alabiliriz.
Bu yöntem, geçerli çalışma dizinini bir dize biçiminde döndürür. Ayrıca bayt nesnesi olarak almak için getcwdb()
yöntemini de kullanabiliriz.
1 2 3 4 5 6 7 8 |
>>> import os >>> os.getcwd() 'D:\\calisma\\python' >>> os.getcwdb() b'D:\\calisma\\python' >>> |
Fazladan ters eğik çizgi, kaçış dizisini ifade eder. print()
işlevi bunu düzgün bir şekilde oluşturur.
1 2 3 4 |
import os print(os.getcwd()) |
Çıktı:
1 2 3 |
D:\calisma\python |
Dizini Değiştirme
Geçerli çalışma dizinini chdir()
yöntemini kullanarak 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.
Geri eğik çizgi kullanılırken kaçış dizisini kullanmak daha güvenlidir.
1 2 3 4 5 |
import os os.chdir('d:\\calisma') print(os.getcwd()) |
Çıktı:
1 2 3 |
d:\calisma |
Dizinleri ve Dosyaları Listele
Bir dizindeki tüm dosyalar ve alt dizinler listdir () yöntemi kullanılarak bilinir.
Bu yöntem bir yol alır ve bu yoldaki alt dizinlerin ve dosyaların bir listesini döndürür. Hiçbir yol belirtilmezse, geçerli çalışma dizininden döner.
1 2 3 4 5 6 7 8 |
import os os.chdir('d:\\calisma') print(os.getcwd()) print(os.listdir()) |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
d:\calisma ['android', 'ardino', 'bootstrap', 'c', 'GoOrnekleri', 'html', 'java2', 'javavscode', 'latex', 'native', 'orm-proje', 'paket-yukle', 'premire', 'python', 'r'] |
Dizini Değiştirme:
1 2 3 4 5 |
import os print(os.listdir('C:\\')) |
Çıktı:
1 2 3 |
['$Recycle.Bin', 'Config.Msi', 'cygwin64', 'Documents and Settings', 'Games', 'Go', 'hiberfil.sys', 'Intel', 'MinGW', 'MyRoot', 'OutputFolder', 'pagefile.sys', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Recovery', 'SQLServer2017Media', 'swapfile.sys', 'System Volume Information', 'Users', 'uygulama', 'WCH.CN', 'Windows'] |
Yeni Bir Dizin Oluşturma
mkdir() yöntemini kullanarak yeni bir dizin oluşturabiliriz.
Bu yöntem yeni dizinin yolunu alır. Tam yol belirtilmezse, yeni dizin geçerli çalışma dizininde oluşturulur.
1 2 3 4 5 6 7 |
import os os.chdir('d:\\calisma') os.mkdir('deneme') print(os.listdir()) |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
['android', 'ardino', 'bootstrap', 'c', 'deneme', 'GoOrnekleri', 'html', 'java2', 'javavscode', 'latex', 'native', 'orm-proje', 'paket-yukle', 'premire', 'python', 'r'] |
Bir Dizini veya Dosyayı Yeniden Adlandırma
rename() yöntemi bir dizini veya dosyayı yeniden adlandırabilir.
İlk argüman eski ad ve yeni ad ikinci argüman olarak sağlanmalıdır.
1 2 3 4 5 6 7 8 |
import os os.chdir('d:\\calisma') os.rename('deneme','aaa_yeni') print(os.listdir()) |
Çıktı:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
['aaa_yeni', 'android', 'ardino', 'bootstrap', 'c', 'GoOrnekleri', 'html', 'java2', 'javavscode', 'latex', 'native', 'orm-proje', 'paket-yukle', 'premire', 'python', 'r'] |
Dizin veya Dosyayı Kaldırma
Bir dosya remove() yöntemi kullanılarak kaldırılabilir (silinebilir).
Benzer şekilde, rmdir() yöntemi boş bir dizini kaldırır.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import os os.chdir('d:\\calisma\\ornek') print(os.listdir()) os.remove('deneme.txt') print(os.listdir()) os.rmdir('klasör') print(os.listdir()) print("dizin ve dosya silindi") |
Çıktı:
1 2 3 4 5 6 |
['deneme.txt', 'klasör'] ['klasör'] [] dizin ve dosya silindi |
Ancak, rmdir() yönteminin yalnızca boş dizinleri kaldırabileceğini unutmayın.
Boş olmayan bir dizini kaldırmak için shutil modülünün içindeki rmtree() yöntemini kullanabiliriz.
1 2 3 4 |
import shutil shutil.rmtree('dolu_dizin') |
1 Yorum