Jak zdobyć obecny katalog roboczy w Python

Jak zdobyć obecny katalog roboczy w Python

Nazwa pliku lub folderu może być używana z pełną ścieżką lub po prostu wymienienie nazwy pliku lub folderu tylko po to, aby użyć go w skrypcie. Pełna ścieżka pliku lub folderu z katalogu głównego jest określona przez ścieżkę bezwzględną. Gdy nazwa pliku jest używana bez nazwy ścieżki w skrypcie, wówczas bieżący katalog roboczy jest zakładany jako nazwa ścieżki pliku i nazywa się ścieżką względną. W Python bieżący katalog roboczy jest ustawiony na lokalizację katalogu, z której wykonuje się skrypt Python. W Pythonie istnieje wiele modułów, aby uzyskać obecny katalog roboczy. W tym samouczku pokazano sposoby pobierania obecnego katalogu roboczego za pomocą różnych modułów w Pythonie.

Przykład-1: Korzystanie z modułu PATHLIB do uzyskania bieżącego katalogu roboczego

Klasa ścieżki moduł ścieżki służy do odczytania bieżącego katalogu roboczego skryptu wykonującego. Utwórz skrypt Python z następującym kodem, aby odczytać i wydrukować bieżący katalog roboczy za pomocą modułu ścieżki. metoda cwd () klas ścieżki służy do wydrukowania bieżącego katalogu roboczego, z którego wykonywa skrypt.

# Zaimportuj ścieżkę z modułu ścieżki
ze ścieżki importu ścieżki
# Odzyskaj ścieżkę obecnego katalogu roboczego
current_working_directory = ścieżka.cwd ()
# Wydrukuj lokalizację bieżącego katalogu roboczego
Drukuj („Lokalizacja bieżącego katalogu roboczego to:”)
print (current_working_directory)

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Tutaj ścieżka bieżącego katalogu roboczego bez nazwy skryptu pokazano na wyjściu.

Przykład-2: Korzystanie z NormPath () i Abpath (), aby uzyskać obecny katalog roboczy

Korzystanie z modułu OS to kolejny sposób na pobranie bieżącego katalogu roboczego. W klasie ścieżki modułu OS istnieją różne metody w celu odzyskania bieżącego katalogu roboczego. Normpath () i metody abpath () są ich dwoma. Metody te zwracają bieżący katalog roboczy jako ciąg. Utwórz plik Pythona z następującym skryptem, aby sprawdzić cele tych funkcji.

# Importuj moduł OS
Import OS
# Wydrukuj bieżący katalog roboczy za pomocą funkcji NormPath ()
drukuj („Obecny katalog roboczy (przy użyciu normpath ()) to:”)
Drukuj (OS.ścieżka.Dirname (OS.ścieżka.Normpath (__ plik__)))
# Wydrukuj bieżący katalog roboczy za pomocą funkcji abpath ()
print („\ n bieżący katalog roboczy (za pomocą abpath ()) to:”)
Drukuj (OS.ścieżka.Abpath ('.'))

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Tutaj ścieżka bieżącego katalogu roboczego bez nazwy skryptu pokazano na wyjściu.

Przykład-3: Korzystanie z realpath (), aby uzyskać obecny katalog roboczy

realpath () to kolejna metoda odzyskania bieżącego katalogu roboczego. Utwórz plik Python z następującym skryptem, aby wydrukować bieżący katalog roboczy z nazwą skryptu za pomocą metoda realPath (). W skrypcie wymaga __plik__ Jako wartość argumentu zawierająca nazwę pliku, w której moduł OS jest importowany.

# Importuj moduł OS
Import OS
# Przeczytaj aktualny katalog roboczy za pomocą funkcji realpath ()
real_path = OS.ścieżka.realPath (__ plik__)
# Wydrukuj bieżący katalog roboczy z nazwą skryptu
Drukuj („\ n bieżący katalog roboczy z nazwą skryptu to:”)
druk (real_path)

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Tutaj ścieżka bieżącego katalogu roboczego z nazwą skryptu pokazano na wyjściu.

Przykład-4: Używanie getCwd (), aby uzyskać bieżący katalog roboczy

Używając funkcja getCwd () modułu OS jest najprostszym sposobem na pobranie bieżącego katalogu roboczego skryptu wykonującego. Nie zawiera żadnego argumentu i zwraca CWD jako ciąg. Utwórz plik Python z następującym skryptem, aby sprawdzić użycie funkcja getCwd (). Obecny katalog roboczy jest drukowany na początku skryptu. Następnie bieżąca ścieżka katalogu jest zmieniana przy użyciu funkcja chdir (). getCwd () jest powołany ponownie po zmianie katalogu.

# Importuj moduł OS
Import OS
# Wydrukuj bieżący katalog roboczy za pomocą funkcji getCwd ()
Drukuj („Obecny katalog roboczy to: \ n”, OS.getCwd ())
# Zmień bieżący katalog roboczy
OS.chdir ('/etc/maila')
# Wydrukuj bieżący katalog roboczy po zmianie
wydrukuj („\ n bieżący katalog roboczy po zmianie to: \ n”, OS.getCwd ())

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Tutaj obecna ścieżka katalogu roboczego bez nazwy skryptu została wydrukowana przed zmianą katalogu. Następnie wydrukowano zmienioną ścieżkę katalogu.

Przykład-5: Używanie getCwd () z próbą, aby uzyskać obecny katalog roboczy

Utwórz plik Python z następującym skryptem, aby zmienić bieżący katalog roboczy na podstawie wartości wejściowej i obsłużyć różne typy błędów. Trzy rodzaje błędów można obsługiwać, wykonując skrypt. Błąd FillenotFoundError zostanie wygenerowane, jeśli ścieżka pobrana z wejścia nie istnieje. Błąd NotadirectoryError zostanie wygenerowane, jeśli ścieżka pobrana z wejścia nie jest katalogiem. Błąd uprawnień zostanie wygenerowane, jeśli ścieżka pobierana z wejścia jest niedostępna.

# Zaimportuj moduł OS
Import OS
# Wprowadź ścieżkę katalogu
cwd = wejście („Wprowadź ścieżkę bieżącego katalogu roboczego: \ n”)
próbować:
# Zmień bieżący katalog roboczy
OS.CHDIR (CWD)
# Wydrukuj bieżący katalog roboczy za pomocą funkcji getCwd ()
Drukuj („Obecny katalog roboczy to: \ n”, OS.getCwd ())
# Podnieś błąd, jeśli katalog nie istnieje
Z wyjątkiem FillenotFoundError:
Drukuj („Katalog nie istnieje.")
# Podnieś błąd, jeśli ścieżka wejściowa nie jest katalogiem
Z wyjątkiem Notadirectoryerror:
druk („ %s nie jest katalogiem” %(CWD))
# Podnieś błąd, jeśli katalog nie jest dostępny
Z wyjątkiem pozwolenia:
Drukuj („Zezwolenie na zmianę katalogu.")

Wyjście:

Następujące dane wyjściowe pojawią się po wykonaniu powyższego skryptu, jeśli istnieje ścieżka. Tutaj istnieje wzięta ścieżka wejściowa, a zmieniony katalog roboczy wydrukował na wyjściu.


Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu, jeśli ścieżka nie istnieje.


Następujące dane wyjściowe pojawi się po wykonaniu powyższego skryptu, jeśli ścieżka wzięta jest niedostępna.

Wniosek:

Zastosowanie modułów ścieżki i OS do odczytania bieżącego katalogu roboczego jest pokazane w tym samouczku za pomocą różnych przykładów. W tym samouczku pokazano również sposób pobierania bieżącego katalogu roboczego po zmianie bieżącego katalogu roboczego na podstawie danych wejściowych użytkownika.