Jak zmienić katalog roboczy w Pythonie

Jak zmienić katalog roboczy w Pythonie

Katalog roboczy to aktualny katalog, w którym pracujemy i od którego uruchamiany jest skrypt; W tym katalogu mamy dostęp do wielu plików (tych zlokalizowanych w nim). Czasami jednak musimy zmienić katalogi i iść tam iz powrotem między plikami i folderami. W tym samouczku dowiemy się, jak zmienić katalog roboczy w Pythonie.

Moduł OS

Po pierwsze, aby to osiągnąć, będziemy potrzebować modułu OS w Python. Ponieważ jest wstępnie zainstalowany, nie trzeba niczego instalować. Moduł OS 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ć działające katalogi, pliki przewodników, sprawdzić, czy pliki istnieją itp.… Nie trzeba dodawać, że jest to bardzo przydatny moduł.

Uzyskanie obecnego katalogu roboczego

Aby uzyskać obecny katalog roboczy, używamy metoda getCwd () z modułu OS. Uwaga tutaj, że żaden argument nie został przekazany. W moim przypadku wyjście brzmiało „/home/kalyani/pycharmprojects/Pythonproject11”Na maszynie Ubuntu (Running Pycharm). Oznacza to, że główny skrypt - główny.PY - znajduje się w tym folderze (Pythonproject1). I pamiętajcie, działający katalog, przede wszystkim folder!

Import OS
# Zdobądź obecny katalog roboczy
current_directory = OS.getCwd ()
Drukuj („Twój obecny katalog roboczy to % s” % current_directory)

Zmiana obecnego katalogu roboczego

Zmiana katalogu roboczego jest łatwa dzięki metodzie chdir (), która przyjmuje dokładnie jeden argument - ścieżka do nowej lokalizacji jako ciąg.

Import OS
# Zdobądź obecny katalog roboczy
current_directory = OS.getCwd ()
Drukuj („Twój obecny katalog roboczy to % s” % current_directory)

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

# Ustawmy nowy katalog roboczy
new_working_directory = "/home/kalyani/komputer/pythondirectory"

W systemie Windows musisz użyć podwójnych operatów, aby zdefiniować katalog.

#New_Working_Directory = "C: \\ Users \\ Never \\ Desktop \\ Pythondirectory"

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

próbować:
OS.chdir (new_working_directory)
Drukuj („Katalog roboczy został zmieniony!")
Drukuj („WD: % s” % OS.getCwd ())
Z wyjątkiem Notadirectoryerror:
Drukuj („Nie wybrałeś katalogu.")
Z wyjątkiem FillenotFoundError:
wydruku („nie znaleziono folderu. Ścieżka jest nieprawidłowa.")
Z wyjątkiem pozwolenia:
wydrukuj („Nie masz dostępu do tego folderu/pliku.")

Pełny kod wyglądałby tak:

Import OS
# Zdobądź obecny katalog roboczy
current_directory = OS.getCwd ()
Drukuj („Twój obecny katalog roboczy to % s” % current_directory)
# Ustawmy nowy katalog roboczy
#New_Working_Directory = "/home/kalyani/teSktop/Pythondirectory"
new_working_directory = r "c: \ Users \ nigdy \ Desktop \ Pythondirectory"
próbować:
OS.chdir (new_working_directory)
Drukuj („Katalog roboczy został zmieniony!")
Drukuj („WD: % s” % OS.getCwd ())
Z wyjątkiem Notadirectoryerror:
Drukuj („Nie wybrałeś katalogu.")
Z wyjątkiem FillenotFoundError:
wydruku („nie znaleziono folderu. Ścieżka jest nieprawidłowa.")
Z wyjątkiem pozwolenia:
wydrukuj („Nie masz dostępu do tego folderu/pliku.")

W rzeczywistości błędy mogą podnieść różne rodzaje wyjątków:

I. Notadirectoryerror:

Załóżmy teraz, że dla przypadków napisałem następujący kod dla ścieżki lub nowy katalog roboczy:

new_Working_Directory = "c: \\ Users \\ nigdy \\ Desktop \\ pythondirectory \\ text.tekst"

Możesz tu zauważyć, że wskazuję ścieżkę do dokumentu tekstowego o nazwie tekst.tekst. A ten ostatni wyrzuci błąd zwany notadirectoryeRror. Innymi słowy, twoja ścieżka musi wskazywać na jakiś katalog.

ii. FillenotFoundError:

FillenotFounderRor jest rzucany, gdy ścieżka nie istnieje. Załóżmy więc, że na chwilę nie mam katalogu o imieniu Pythondirectory na moim pulpicie i że przygotowałem swoją drogę do:

new_working_directory = "c: \ Users \ nigdy \ Desktop \ Pythondirectory"

Rzuci FillenotFoundError. Ten błąd oznacza po prostu, że katalog, na który wskazujemy, nie istnieje lub nie został znaleziony.

iii. Zezwolenie:

A Zezwolenie jest podniesiony, gdy użytkownik nie ma odpowiednich uprawnień do modyfikacji lub dostępu do wybranego katalogu.

iv. Błąd składni:

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

new_working_directory = "c: \ Users \ nigdy \ Desktop \ Pythondirectory"

Rzucany jest błąd synthax! Jednak błąd składniowy jest znacznie trudniejszy do złapania, ponieważ należy go ocenić, importować lub wykonać. Jako taki, kiedy piszemy bloki próbne, trudniej jest złapać taki błąd.

W systemie Windows, aby uniknąć błędów, ścieżkę można zapisać na jeden z trzech różnych sposobów, aby nie rzucane błędów:

Metoda 1: W tej metodzie dodajemy „R” przed ustaleniem ciągu.

new_working_directory = r "c: \ Users \ nigdy \ Desktop \ Pythondirectory"

Metoda 2: Używamy podwójnych operatów.

new_Working_Directory = "c: \\ Users \\ nigdy \\ Desktop \\ Pythondirectory"

Metoda 3: Używamy pojedynczego cięcia do przodu.

new_Working_Directory = "c:/Users/Never/Desktop/Pythondirectory"

Moduł ścieżki

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

ścieżka instalacji pip
(https: // pypi.org/projekt/ścieżka/)

Następnie piszemy:

Z ścieżki importu ścieżki
Import OS

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

# Sprawdźmy bieżący katalog roboczy
cwd = OS.getCwd ()
Drukuj („Obecny katalog roboczy to: % s” % cwd)
wydrukować("---------------------------------------------")

Następnie ustaw ścieżkę do nowego katalogu roboczego. W takim przypadku postanowiłem ustawić przykład na komputerze Windows:

# Ustaw ścieżkę do nowego katalogu roboczego
new_path = "C: \\ Users \\ nigdy \\ Desktop \\ Pythondirectory"

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

# Zmień katalog roboczy
Ścieżka (new_path).chdir ()

Odłóż ponownie, jeśli działający katalog został zmieniony. I tutaj, jak widać na zdjęciu, działający katalog został rzeczywiście zmieniony!

# Odłóż katalog roboczy
# to zostało zmienione?
cwd = OS.getCwd ()
Drukuj („Nowy katalog roboczy to % s” % CWD)

Zmiana działających katalogów jest łatwym zadaniem i wymaga jednej metody - metoda CHDIR (PATH). Jednak w zależności od tego, czy jesteś na komputerze z systemem Windows, czy na maszynie Linux, musisz uważać na to, jak wprowadzić ścieżkę jako ciąg. Jeśli jest nieprawidłowo wprowadzony, może to rzucić błąd!

Szczęśliwe kodowanie!