Python'da Çalışma Dizini Nasıl Değiştirilir

How Change Working Directory Python



Çalışma dizini, içinde çalıştığımız ve betiğin çalıştırıldığı geçerli bir dizindir; bu dizinde, birçok dosyaya erişimimiz var (içinde bulunanlar). Ancak, bazen dizinleri değiştirmemiz ve dosyalar ve klasörler arasında gidip gelmemiz gerekir. Bu derste Python'da çalışma dizinini nasıl değiştireceğimizi öğreneceğiz.

OS MODÜLÜ

İlk etapta bunu başarmak için Python'da os modülüne ihtiyacımız olacak. Önceden yüklenmiş olarak geldiği için herhangi bir şey yüklemeye gerek yoktur. İşletim sistemi modülü genellikle Python'da sistemdeki dosya ve klasörlerle etkileşim kurmak, bunları yönetmek ve değiştirmek için kullanılır. Örneğin, dizinler oluşturabilir/kaldırabiliriz, çalışma dizinlerini değiştirebilir, izlenecek dosyalar, dosyaların var olup olmadığını kontrol edebiliriz vb… Çok kullanışlı bir modül olduğunu söylemeye gerek yok.







Geçerli çalışma dizinini alma

Geçerli çalışma dizinini almak için getcwd() yöntemi os modülünden. Lütfen burada hiçbir argümanın iletilmediğine dikkat edin. Benim durumumda, çıktı /home/kalyani/PycharmProjects/pythonProject1 bir Ubuntu makinesinde (PyCharm çalıştıran). Bu, ana betiğin - main.py - bu klasörde (pythonProject1) bulunduğu anlamına gelir. Ve unutmayın, çalışma dizini, her şeyden önce bir klasör!



içe aktarmak sen

# Geçerli çalışma dizinini alın

akım_dizini= sen.getcwd()

Yazdır('Şu anki çalışma dizininiz %s'% akım_dizini)



Geçerli çalışma dizinini değiştirme

Tam olarak bir argüman alan chdir() yöntemiyle çalışma dizininizi değiştirmek kolaydır – bir dize olarak yeni konuma giden yol.





içe aktarmak sen

# Geçerli çalışma dizinini alın

akım_dizini= sen.getcwd()

Yazdır('Şu anki çalışma dizininiz %s'% akım_dizini)

Yapılacak ilk şey, çalışma dizininin yeni yolunu ayarlamaktır. Ubuntu'da bu çok basit!

# hadi yeni bir çalışma dizini oluşturalım

new_working_directory= '/home/kalyani/Desktop/PythonDirectory'

Windows'ta dizini tanımlamak için çift ters eğik çizgi kullanmanız gerekir.



#new_working_directory = 'C:\Users\hiçbir zaman\Desktop\PythonDirectory'

Ardından, bir try-except yan tümcesi tanımlarız. Yol varsa, çalışma dizinini yeni bir çalışma dizini ile değiştirmek için chdir() yöntemini kullanacağız. Yol bir dizin değilse, bir hata verecektir!

denemek:

sen.chdir(new_working_directory)

Yazdır('Çalışma dizini değiştirildi!')

Yazdır('WD: %s'%sen.getcwd())


hariçNotADirectoryError:

Yazdır('Bir dizin seçmediniz.')


hariçFileNotFoundError:

Yazdır('Klasör bulunamadı. Yol yanlış.')


hariçİzin Hatası:

Yazdır('Bu klasöre/dosyaya erişiminiz yok.')

Tam kod şöyle görünecektir:

içe aktarmak sen

# Geçerli çalışma dizinini alın

akım_dizini= sen.getcwd()

Yazdır('Şu anki çalışma dizininiz %s'% akım_dizini)

# hadi yeni bir çalışma dizini oluşturalım

#new_working_directory = '/home/kalyani/Desktop/PythonDirectory'

new_working_directory=r'C: Usert durmadanNSesktopPythonDirectory'

denemek:

sen.chdir(new_working_directory)

Yazdır('Çalışma dizini değiştirildi!')

Yazdır('WD: %s'%sen.getcwd())


hariçNotADirectoryError:

Yazdır('Bir dizin seçmediniz.')


hariçFileNotFoundError:

Yazdır('Klasör bulunamadı. Yol yanlış.')


hariçİzin Hatası:

Yazdır('Bu klasöre/dosyaya erişiminiz yok.')

Aslında, hatalar çeşitli istisna türlerini ortaya çıkarabilir:

ben. NotADirectoryError:

Şimdi, yol veya yeni çalışma dizini için aşağıdaki kodu yazdığımı varsayalım:

new_working_directory= 'C:\Kullanıcılar\asla\masaüstü\Python Dizini\metin.txt'

Burada not edebileceğiniz şey, text.txt adlı bir metin belgesinin yolunu işaret ediyor olmam. İkincisi, NotADirectoryError olarak bilinen bir hata verecektir. Başka bir deyişle, yolunuz bir tür dizine işaret etmelidir.

ii. FileNotFoundError:

Yol olmadığında bir FileNotFoundError atılır. Öyleyse, şu an için Masaüstümde PythonDirectory adında bir dizine sahip olmadığımı ve yolumu şu şekilde belirlediğimi varsayalım:

new_working_directory= 'C: Usert durmadanNSesktopPythonDirectory'

bir atacak FileNotFoundError . Bu hata basitçe, işaret ettiğimiz dizinin mevcut olmadığı veya bulunmadığı anlamına gelir.

iii. İzin Hatası:

İLE İzin Hatası Kullanıcı, seçilen dizini değiştirmek veya erişmek için yeterli izinlere sahip olmadığında ortaya çıkar.

iv. Sözdizimi hatası:

Yolda bir sözdizimi hatası olduğunda bir sözdizimi hatası oluşur. Windows'ta şunu söylemek için yazarsak:

new_working_directory= 'C: Usert durmadanNSesktopPythonDirectory'

Bir sözdizimi hatası atıldı! Ancak, değerlendirilmesi, içe aktarılması veya yürütülmesi gerektiğinden bir sözdizimi hatasının yakalanması çok daha zordur. Hal böyle olunca try-except blokları yazdığımızda böyle bir hatayı yakalamak daha zor oluyor.

Windows'ta, herhangi bir hatayı önlemek için yol, hiçbir hata oluşmaması için üç farklı yoldan biriyle yazılabilir:

Yöntem 1: Bu yöntemde, dizeyi ayarlamadan önce bir r ekliyoruz.

new_working_directory=r'C: Usert durmadanNSesktopPythonDirectory'

Yöntem 2: Çift ters eğik çizgi kullanıyoruz.

new_working_directory= 'C:\Kullanıcılar\asla\masaüstü\Python Dizini'

Yöntem 3: Tek bir eğik çizgi kullanıyoruz.

new_working_directory= 'C:/Kullanıcılar/asla/Masaüstü/PythonDirectory'

YOL MODÜLÜ

Ayrıca path modülünü kullanarak çalışma dizinini değiştirebiliriz. Öncelikle yolu aşağıdaki gibi kurun (Modülün linkini de verdim):

pip kurulum yolu

(https://pipi.kuruluş/proje/yol/)

Sonra şunu yazıyoruz:

itibarenyoliçe aktarmakYol

içe aktarmak sen

Öncelikle os modülünü ve getcwd() yöntemini kullanarak mevcut çalışma dizinini kontrol edelim.

# mevcut çalışma dizinini kontrol edelim

cwd= sen.getcwd()

Yazdır('Geçerli çalışma dizini: %s'% yığın)

Yazdır('---------------------------------------------')

Ardından, yeni çalışma dizininin yolunu ayarlayın. Bu durumda, örneği bir Windows makinesinde ayarlamayı seçtim:

# yeni çalışma dizininin yolunu ayarlayın

new_path= 'C:\Kullanıcılar\asla\masaüstü\Python Dizini'

Çalışma dizinini değiştirmek için Path() kullanın. Path() burada yalnızca bir argüman alır: yeni çalışma dizininin gerçek yolu ve görevi gerçekleştirmek için chdir() yöntemini kullanır.

# çalışma dizinini değiştir

Yol(new_path).chdir()

Çalışma dizininin değiştirilip değiştirilmediğini tekrar kontrol edin. Ve burada, resimde gördüğünüz gibi, çalışma dizini gerçekten değişti!

# Çalışma dizinini tekrar kontrol edin

#değiştirildi mi?

cwd= sen.getcwd()

Yazdır('Yeni çalışma dizini %s'% yığın)

Çalışma dizinlerini değiştirmek kolay bir iştir ve yalnızca bir yöntem gerektirir – chdir(path) yöntemi. Ancak, bir Windows makinesinde veya bir Linux makinesinde olmanıza bağlı olarak, yolu bir dize olarak nasıl girdiğinize dikkat etmeniz gerekir. Yanlış girilirse hata verebilir!

Mutlu Kodlama!