Jak uzyskać aktualny katalog roboczy w Pythonie?

How Get Current Working Directory Python



Nazwy pliku lub folderu można użyć z pełną ścieżką lub po prostu wymieniając nazwę pliku lub folderu tylko w celu użycia jej 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, jako nazwę ścieżki pliku przyjmuje się Bieżący katalog roboczy i jest on nazywany ścieżką względną. W Pythonie Bieżący katalog roboczy jest ustawiony na lokalizację katalogu, z którego wykonuje się skrypt Pythona. W Pythonie istnieje wiele modułów umożliwiających pobieranie bieżącego katalogu roboczego. W tym samouczku pokazano sposoby pobierania bieżącego katalogu roboczego przy użyciu różnych modułów w Pythonie.

Przykład-1: Użycie modułu pathlib do pobrania bieżącego katalogu roboczego

Klasa ścieżki moduł pathlib służy do odczytywania bieżącego katalogu roboczego wykonywanego skryptu. Utwórz skrypt Pythona z następującym kodem, aby odczytać i wydrukować bieżący katalog roboczy za pomocą modułu pathlib. ten cwd() metoda klasy Path służy do drukowania bieżącego katalogu roboczego, z którego wykonywany jest skrypt.







# Importuj ścieżkę z modułu pathlib

zścieżkalibimportŚcieżka

# Pobierz ścieżkę bieżącego katalogu roboczego

obecny_katalog_roboczy=Ścieżka.cwd()

# Wydrukuj lokalizację bieżącego katalogu roboczego

wydrukować('Lokalizacja bieżącego katalogu roboczego to:')

wydrukować(obecny_katalog_roboczy)

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu. W tym miejscu w danych wyjściowych pojawiła się ścieżka bieżącego katalogu roboczego bez nazwy skryptu.





Przykład 2: Używanie normpath() i abspath() do pobrania bieżącego katalogu roboczego

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 pobierania bieżącego katalogu roboczego. Norpath() i metody abspath() są dwaj z nich. Te metody zwracają bieżący katalog roboczy jako ciąg. Utwórz plik Pythona z następującym skryptem, aby sprawdzić cele tych funkcji.





# Importuj moduł systemu operacyjnego

import ty

# Wydrukuj bieżący katalog roboczy za pomocą funkcji normpath()

wydrukować('Bieżący katalog roboczy (przy użyciu normpath()) to:')

wydrukować(ty.ścieżka.dirname(ty.ścieżka.ścieżka norma(__plik__)))

# Wydrukuj bieżący katalog roboczy za pomocą funkcji abspath()

wydrukować(' Bieżący katalog roboczy (przy użyciu abspath()) to:')

wydrukować(ty.ścieżka.abspath('.'))

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu. W tym miejscu w danych wyjściowych pojawiła się ścieżka bieżącego katalogu roboczego bez nazwy skryptu.



Przykład-3: Użycie realpath() do pobrania bieżącego katalogu roboczego

ten ścieżka rzeczywista() to kolejna metoda pobierania bieżącego katalogu roboczego. Utwórz plik Pythona z następującym skryptem, aby wydrukować bieżący katalog roboczy z nazwą skryptu za pomocą metoda realpath() . W skrypcie zajmuje __plik__ jako wartość argumentu zawierającą ścieżkę do pliku, w którym importowany jest moduł os.

# Importuj moduł systemu operacyjnego

import ty

# Odczytaj bieżący katalog roboczy za pomocą funkcji realpath()

rzeczywista_ścieżka= ty.ścieżka.realpath(__plik__)

# Wydrukuj bieżący katalog roboczy z nazwą skryptu

wydrukować(' Bieżący katalog roboczy o nazwie skryptu to:')

wydrukować(rzeczywista_ścieżka)

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Tutaj ścieżka bieżącego katalogu roboczego z nazwą skryptu została pokazana w danych wyjściowych.

Przykład 4: Użycie getcwd() do pobrania bieżącego katalogu roboczego

Używając funkcja getcwd() modułu os to najprostszy sposób na pobranie bieżącego katalogu roboczego wykonywanego skryptu. Nie zawiera żadnego argumentu i zwraca CWD jako ciąg. Utwórz plik Pythona za pomocą następującego skryptu, aby sprawdzić użycie funkcja getcwd() . Bieżący katalog roboczy jest wypisywany na początku skryptu. Następnie bieżąca ścieżka katalogu jest zmieniana za pomocą funkcja chdir() . ten polecenie getcwd() jest wywoływana ponownie po zmianie katalogu.

# Importuj moduł systemu operacyjnego

import ty

# Wydrukuj bieżący katalog roboczy za pomocą funkcji getcwd()

wydrukować('Bieżący katalog roboczy to: ', ty.dostaćcwd())

# Zmień bieżący katalog roboczy

ty.czdira('/ etc / poczta')

# Wydrukuj bieżący katalog roboczy po zmianie

wydrukować(' Bieżący katalog roboczy po zmianie to: ', ty.dostaćcwd())

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu. Tutaj przed zmianą katalogu została wydrukowana bieżąca ścieżka katalogu roboczego bez nazwy skryptu. Następnie została wydrukowana zmieniona ścieżka do katalogu.

Przykład-5: Użycie getcwd() z try-except w celu pobrania bieżącego katalogu roboczego

Utwórz plik Pythona za pomocą następującego skryptu, aby zmienić bieżący katalog roboczy na podstawie wartości wejściowej i obsłużyć różne typy błędów. Wykonując skrypt można poradzić sobie z trzema rodzajami błędów. ten Błąd FileNotFoundError zostanie wygenerowana, jeśli ścieżka pobrana z danych wejściowych nie istnieje. ten Błąd NotADirectoryError zostanie wygenerowana, jeśli ścieżka pobrana z danych wejściowych nie jest katalogiem. ten Błąd uprawnień zostanie wygenerowana, jeśli ścieżka pobrana z wejścia jest niedostępna.

# Zaimportuj moduł systemu operacyjnego

import ty

# Wprowadź ścieżkę katalogu

cwd= Wejście('Wprowadź ścieżkę bieżącego katalogu roboczego: ')


próbować:

# Zmień bieżący katalog roboczy

ty.czdira(cwd)

# Wydrukuj bieżący katalog roboczy za pomocą funkcji getcwd()

wydrukować('Bieżący katalog roboczy to: ', ty.dostaćcwd())

# Zgłoś błąd, jeśli katalog nie istnieje

z wyjątkiemBłąd pliku nie znalezionego:

wydrukować(„Katalog nie istnieje”.)

# Zgłoś błąd, jeśli ścieżka wejściowa nie jest katalogiem

z wyjątkiemBłąd niekatalogu:

wydrukować('%s nie jest katalogiem'%(cwd))

# Zgłoś błąd, jeśli katalog jest niedostępny

z wyjątkiemBłąd uprawnień:

wydrukować('Odmowa uprawnień do zmiany katalogu.')

Wyjście:

Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu, jeśli ścieżka istnieje. Tutaj pobrana ścieżka wejściowa istnieje, a zmieniony katalog roboczy został wydrukowany na wyjściu.


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


Poniższe dane wyjściowe pojawią się po wykonaniu powyższego skryptu, jeśli wybrana ścieżka nie jest dostępna.

Wniosek:

Użycie modułów pathlib i os do odczytu bieżącego katalogu roboczego jest pokazane w tym samouczku na różnych przykładach. W tym samouczku pokazano również sposób pobierania bieżącego katalogu roboczego po zmianie bieżącego katalogu roboczego na podstawie danych wprowadzonych przez użytkownika.