Jak zmienić katalog roboczy w Pythonie

How Change Working Directory Python



Katalog roboczy to bieżący katalog, w którym pracujemy iz którego uruchamiany jest skrypt; w tym katalogu mamy dostęp do wielu plików (tych, które się w nim znajdują). Czasami jednak musimy zmieniać katalogi i przechodzić między plikami i folderami. W tym samouczku dowiemy się, jak zmienić katalog roboczy w Pythonie.

MODUŁ OS

W pierwszej kolejności, aby to osiągnąć, będziemy potrzebować modułu os w Pythonie. Ponieważ jest fabrycznie zainstalowany, nie ma potrzeby instalowania czegokolwiek. Moduł systemu operacyjnego jest zwykle używany w Pythonie do interakcji, zarządzania i modyfikowania plików i folderów w systemie. Na przykład możemy tworzyć/usuwać katalogi, zmieniać katalogi robocze, przeglądać pliki, sprawdzać, czy pliki istnieją itp. Nie trzeba dodawać, że jest to bardzo przydatny moduł.







Pobieranie bieżącego katalogu roboczego

Aby uzyskać bieżący katalog roboczy, używamy metoda getcwd() z modułu os. Zwróć uwagę, że nie jest przekazywany żaden argument. W moim przypadku wynik był /home/kalyani/PycharmProjects/pythonProject1 na maszynie Ubuntu (z uruchomionym PyCharm). Oznacza to, że główny skrypt – main.py – znajduje się w tym folderze (pythonProject1). I pamiętaj, katalog roboczy, przede wszystkim folder!



import ty

# Pobierz bieżący katalog roboczy

aktualny_katalog= ty.dostaćcwd()

wydrukować('Twój bieżący katalog roboczy to %s'% aktualny_katalog)



Zmiana bieżącego katalogu roboczego

Zmiana katalogu roboczego jest łatwa dzięki metodzie chdir(), która przyjmuje dokładnie jeden argument — ścieżkę do nowej lokalizacji w postaci ciągu znaków.





import ty

# Pobierz bieżący katalog roboczy

aktualny_katalog= ty.dostaćcwd()

wydrukować('Twój bieżący katalog roboczy to %s'% aktualny_katalog)

Pierwszą rzeczą do zrobienia jest ustawienie nowej ścieżki do katalogu roboczego. W Ubuntu jest to bardzo proste!

# ustawmy nowy katalog roboczy

nowy_katalog_roboczy= „/home/kalyani/komputer/katalog Pythona”

W systemie Windows do zdefiniowania katalogu należy użyć podwójnych ukośników odwrotnych.



#new_working_directory = 'C:\Użytkownicy\nigdy\Desktop\PythonDirectory'

Następnie definiujemy klauzulę try-except. Jeśli ścieżka istnieje, użyjemy metody chdir() do zmiany katalogu roboczego na nowy katalog roboczy. Jeśli ścieżka nie jest katalogiem, zgłosi błąd!

próbować:

ty.czdira(nowy_katalog_roboczy)

wydrukować('Katalog roboczy został zmieniony!')

wydrukować('WD: %s'%ty.dostaćcwd())


z wyjątkiemBłąd niekatalogu:

wydrukować('Nie wybrałeś katalogu.')


z wyjątkiemBłąd pliku nie znalezionego:

wydrukować('Folder nie został znaleziony. Ścieżka jest nieprawidłowa.)


z wyjątkiemBłąd uprawnień:

wydrukować('Nie masz dostępu do tego folderu/pliku.')

Pełny kod wyglądałby tak:

import ty

# Pobierz bieżący katalog roboczy

aktualny_katalog= ty.dostaćcwd()

wydrukować('Twój bieżący katalog roboczy to %s'% aktualny_katalog)

# ustawmy nowy katalog roboczy

#new_working_directory = '/dom/kalyani/komputer/katalog Pythona'

nowy_katalog_roboczy=r'C: Usłużyć zawszeDesktopPKatalog ython'

próbować:

ty.czdira(nowy_katalog_roboczy)

wydrukować('Katalog roboczy został zmieniony!')

wydrukować('WD: %s'%ty.dostaćcwd())


z wyjątkiemBłąd niekatalogu:

wydrukować('Nie wybrałeś katalogu.')


z wyjątkiemBłąd pliku nie znalezionego:

wydrukować('Folder nie został znaleziony. Ścieżka jest nieprawidłowa.)


z wyjątkiemBłąd uprawnień:

wydrukować('Nie masz dostępu do tego folderu/pliku.')

W rzeczywistości błędy mogą powodować różnego rodzaju wyjątki:

i. Błąd niekatalogu:

Załóżmy teraz dla instancji, że napisałem następujący kod dla ścieżki lub nowego katalogu roboczego:

nowy_katalog_roboczy= 'C:\Użytkownicy\nigdy\Pulpit\PythonDirectory\tekst.txt'

Możesz tutaj zauważyć, że wskazuję ścieżkę do dokumentu tekstowego o nazwie text.txt. A ten ostatni zwróci błąd znany jako NotADirectoryError. Innymi słowy, twoja ścieżka musi wskazywać na jakiś katalog.

ii. Błąd pliku nie znalezionego:

FileNotFoundError jest generowany, gdy ścieżka nie istnieje. Załóżmy więc na chwilę, że nie mam katalogu o nazwie PythonDirectory na moim pulpicie i że ustawiłem ścieżkę na:

nowy_katalog_roboczy= 'C: Usłużyć zawszeDesktopPKatalog ython'

Będzie rzucać Błąd pliku nie znalezionego . Ten błąd oznacza po prostu, że katalog, na który wskazujemy, nie istnieje lub nie został znaleziony.

iii. Błąd uprawnień:

DO Błąd uprawnień jest wywoływane, gdy użytkownik nie ma odpowiednich uprawnień do modyfikowania lub dostępu do wybranego katalogu.

iv. Błąd składni:

Błąd składni występuje, gdy w ścieżce występuje błąd składni. W systemie Windows, jeśli napiszemy, aby powiedzieć:

nowy_katalog_roboczy= 'C: Usłużyć zawszeDesktopPKatalog ython'

Zgłaszany jest błąd składni! Jednak błąd składni jest znacznie trudniejszy do wychwycenia, ponieważ musi zostać oceniony, zaimportowany lub wykonany. W związku z tym, kiedy piszemy bloki try-except, trudniej jest wychwycić taki błąd.

W systemie Windows, aby uniknąć błędów, ścieżkę można zapisać na jeden z trzech różnych sposobów, tak aby nie były zgłaszane żadne błędy:

Metoda 1: W tej metodzie dodajemy r przed ustawieniem ciągu.

nowy_katalog_roboczy=r'C: Usłużyć zawszeDesktopPKatalog ython'

Metoda 2: Używamy podwójnych ukośników odwrotnych.

nowy_katalog_roboczy= 'C:\Użytkownicy\nigdy\Pulpit\Katalog Pythona'

Metoda 3: Używamy pojedynczego ukośnika.

nowy_katalog_roboczy= „C:/Użytkownicy/nigdy/Pulpit/Katalog Pythona”

MODUŁ ŚCIEŻKI

Możemy również zmienić katalog roboczy za pomocą modułu path. Najpierw zainstaluj ścieżkę w następujący sposób (podałem również link do modułu):

ścieżka instalacji pip

(https://pypi.organizacja/projekt/ścieżka/)

Następnie piszemy:

zścieżkaimportŚcieżka

import ty

Najpierw sprawdźmy bieżący katalog roboczy za pomocą modułu os i metody getcwd().

# sprawdźmy aktualny katalog roboczy

cwd= ty.dostaćcwd()

wydrukować('Bieżący katalog roboczy to: %s '% cwd)

wydrukować('-------------------------------------------------------------')

Następnie ustaw ścieżkę do nowego katalogu roboczego. W tym przypadku wybrałem ustawienie przykładu na komputerze z systemem Windows:

# ustaw ścieżkę do nowego katalogu roboczego

Nowa ścieżka= 'C:\Użytkownicy\nigdy\Pulpit\Katalog Pythona'

Użyj Path(), aby zmienić katalog roboczy. Path() przyjmuje tutaj tylko jeden argument: rzeczywistą ścieżkę do nowego katalogu roboczego i używa metody chdir() do wykonania zadania.

# zmień katalog roboczy

Ścieżka(Nowa ścieżka).czdira()

Sprawdź ponownie, czy katalog roboczy został zmieniony. A tutaj, jak widać na zdjęciu, katalog roboczy rzeczywiście uległ zmianie!

# Ponownie sprawdź katalog roboczy

# czy to zostało zmienione?

cwd= ty.dostaćcwd()

wydrukować('Nowy katalog roboczy to %s '% cwd)

Zmiana katalogów roboczych jest łatwym zadaniem i wymaga tylko jednej metody – metody chdir(path). Jednak w zależności od tego, czy korzystasz z komputera z systemem Windows, czy z Linuksem, musisz uważać, aby wprowadzić ścieżkę jako ciąg. Nieprawidłowo wprowadzony może spowodować błąd!

Udanego kodowania!