os.path-Common pathname manipulations¶

kod źródłowy: Lib/posixpath.py (dla POSIX) andLib/ntpath.py (Dla Windows NT).

ten moduł implementuje kilka przydatnych funkcji w nazwach ścieżek. Aby odczytać lub zapisać pliki patrz open(), a aby uzyskać dostęp do systemu plików patrz modułos. Parametry ścieżki mogą być przekazywane jako ciągi znaków lub bajty. Aplikacje są zachęcane do reprezentowania nazw plików jako ciągów znaków (Unicode). Niestety, niektóre nazwy plików mogą nie być reprezentowane jako ciągi znaków w systemie Unix, więc aplikacje, które muszą obsługiwać nazwy plików w systemie Unix, powinny używać obiektów bajtów do reprezentowania nazw ścieżek. Vice versa, używanie obiektów bajtowych nie może reprezentować wszystkich nazw plików w systemie Windows (w standardowym kodowaniu mbcs), dlatego Windowsapplications powinno używać obiektów string, aby uzyskać dostęp do wszystkich plików.

w przeciwieństwie do powłoki uniksowej, Python nie wykonuje żadnych automatycznych rozszerzeń ścieżek.Funkcje takie jak expanduser() i expandvars() mogą być wywoływane domyślnie, gdy aplikacja chce rozszerzyć ścieżkę podobną do powłoki. (Patrz także moduł glob.)

Patrz także

moduł pathlib oferuje obiekty ścieżki wysokiego poziomu.

Notatka

wszystkie te funkcje akceptują tylko bajty lub tylko obiekty łańcuchowe jako parametry. Wynikiem jest obiekt tego samego typu, jeśli zwracana jest ścieżka lub nazwa pliku.

Uwaga

Ponieważ różne systemy operacyjne mają różne konwencje nazw ścieżek, istnieje kilka wersji tego modułu w bibliotece standardowej. Modułos.path jest zawsze modułem ścieżki odpowiednim dla systemu operacyjnego, na którym działa Python, i dlatego można go używać dla ścieżek lokalnych. Można jednak również importować i używać poszczególnych modułów, jeśli chcesz manipulować ścieżką, która jest zawsze w jednym z różnych formatów. Wszystkie mają ten sam interfejs:

  • posixpath dla ścieżek w stylu UNIX

  • ntpath dla ścieżek Windows

zmieniono w wersji 3.8: exists(), lexists(), isdir(), isfile(),islink(), i ismount() teraz zwraca False zamiast używać wyjątku dla ścieżek, które zawierają znaki lub bajty, które mogą być reprezentowane na poziomie systemu operacyjnego.

os.path.abspath(path)¶

zwraca znormalizowaną wersję ścieżki pathname. W większości platform jest to równoważne wywołaniu funkcji normpath() asfollows: normpath(join(os.getcwd(), path)).

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.basename(path)¶

zwraca podstawową nazwę pathname path. Jest to drugi element par zwracany przez przekazanie ścieżki do funkcji split(). Zauważ, że wynik tej funkcji jest inny niż w uniksowym programie basename; gdzie basename dla'/foo/bar/' zwraca 'bar', funkcja basename() zwraca łańcuch anulowany ('').

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.commonpath(paths)¶

zwraca najdłuższą wspólną ścieżkę podrzędną każdej ścieżki w sequencepaths. Raise ValueError jeśli ścieżki zawierają zarówno bezwzględne, jak i względne nazwy ścieżek, ścieżki znajdują się na różnych dyskach lub jeśli ścieżki są puste. W przeciwieństwie do commonprefix(), zwraca ścieżkę avalid.

Dostępność: Unix, Windows.

nowość w wersji 3.5.

zmiana w wersji 3.6: akceptuje sekwencję obiektów podobnych do ścieżki.

os.path.commonprefix(list)¶

zwraca najdłuższy prefiks ścieżki (zapisany znak po znaku), który jest poprawą wszystkich ścieżek na liście. Jeżeli lista jest pusta, zwraca pusty łańcuch ('').

Uwaga

ta funkcja może zwracać nieprawidłowe ścieżki, ponieważ działa naraz. Aby uzyskać prawidłową ścieżkę, zobaczcommonpath().

>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.dirname(path)¶

zwraca nazwę katalogu pathname path. Jest to pierwszy element pary zwracany przez przejście ścieżki do funkcji split().

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.exists(path)¶

zwraca True jeśli path odnosi się do istniejącej ścieżki lub deskryptora openfile. Zwraca False dla uszkodzonych dowiązań symbolicznych. Na niektórych platformach funkcja ta może zwrócić False, jeśli nie przyznano uprawnień do wykonania os.stat() na żądanym pliku, nawet jeśli ścieżka fizycznie istnieje.

zmieniono w wersji 3.3: ścieżka może być teraz liczbą całkowitą: True jest zwracana, jeśli jest to deskryptor otwartego pliku, False w przeciwnym razie.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.lexists(path)¶

zwraca True jeśli path odnosi się do istniejącej ścieżki. Zwraca True dla dowiązań symbolicznych. Odpowiednik exists() na platformach os.lstat().

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.expanduser(ścieżka)¶

w systemach Unix i Windows zwraca argument z początkowym składnikiem ~ lub~user zastąpionym przez katalog domowy tego użytkownika.

w systemie Unix początkowa wartość ~jest zastępowana zmienną środowiskową HOME, jeśli jest ustawiona; w przeciwnym razie katalog domowy bieżącego użytkownika jest wyszukiwany w katalogu password przez wbudowany Moduł pwd. Inicjał ~user jest wyszukiwany bezpośrednio w katalogu haseł.

w systemie Windows, USERPROFILE będzie używany, jeśli jest ustawiony, w przeciwnym razie zostanie użyta kombinacja HOMEPATH i HOMEDRIVE. Początkowy~user jest obsługiwany przez usunięcie ostatniego komponentu katalogu ze ścieżki createduser pochodzącej powyżej.

jeśli rozszerzenie nie powiedzie się lub jeśli ścieżka nie zaczyna się tyldą, ścieżka jest odwracana bez zmian.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

zmiana w wersji 3.8: nie używa już HOME w systemie Windows.

os.path.expandvars(path)¶

zwraca argument z rozwiniętymi zmiennymi środowiskowymi. Podłańcuchy formularza$name lub ${name}są zastępowane wartością zmiennej środowiska. Zniekształcone nazwy zmiennych i odwołania do nieistniejących zmiennych pozostają bez zmian.

w systemie Windows oprócz $name i ${name} obsługiwane są rozszerzenia%name%.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.getatime(path)¶

zwraca czas ostatniego dostępu do path. Wartość zwracana jest liczbą zmiennoprzecinkową określającą ilość sekund od epoki (patrz moduł time). Podnieś OSError, jeśli plik nie istnieje lub jest niedostępny.

os.path.getmtime(path)¶

zwraca czas ostatniej modyfikacji ścieżki. Wartością zwracaną jest Liczba zmiennoprzecinkowa określająca ilość sekund od epoki (patrz moduł time).Podnieś OSError, jeśli plik nie istnieje lub jest niedostępny.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.getctime(path)¶

zwraca czas ctime systemu, który na niektórych systemach (jak Unix) jest czasem ostatniej zmiany metadanych, a na innych (jak Windows)jest czasem utworzenia ścieżki.Wartością zwracaną jest liczba określająca ilość sekund od epoki (moduł seethe time). Podnieś OSError, jeśli plik nie istnieje lub jest niedostępny.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.getsize(path)¶

zwraca rozmiar, w bajtach, path. Podnieś OSError, jeśli plik nie istnieje lub jest niedostępny.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.isabs(path)¶

zwraca True jeśli path jest ścieżką absolutną. W systemie Unix oznacza to, że rozpoczyna się ukośnikiem, w systemie Windows zaczyna się ukośnikiem (wstecz)po odcięciu potencjalnej litery dysku.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.isfile(path)¶

zwraca True jeśli path jest zwykłym plikiem existing.Następuje to po dowiązaniach symbolicznych, więc zarówno islink(), jak i isfile() mogą być prawdziwe dla tej samej ścieżki.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.isdir(path)¶

zwraca True jeśli path jest katalogiem existing. Podąża za dowiązaniami symbolicznymi, więc zarówno islink(), jak i isdir() mogą być prawdziwe dla tej samej ścieżki.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.islink(path)¶

zwraca True jeśli path odnosi się do katalogu existing, który jest dowiązaniem symbolicznym. Zawsze False, jeśli dowiązania symboliczne nie są obsługiwane przez środowisko wykonawcze Pythona.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.ismount(path)¶

Return True if pathname path is a mount point: a point in afile system where a different file system has been mounted. W POSIX funkcja sprawdza, czy rodzic path, path/.., znajduje się na innym urządzeniu niż path, czy też path/.. i path wskazują na ten sam węzeł na tym samym urządzeniu-powinno to wykryć punkty montowania dla wszystkich wariantów UNIX i POSIX. Nie jest w stanie niezawodnie wykryć montowań bind w tym samym systemie plików. W systemie Windows litera dysku root i udostępnij UNC są zawsze punktami montowania, a dla każdej innej ścieżki GetVolumePathName nazywa się, aby sprawdzić, czy różni się od ścieżki wejściowej.

nowość w wersji 3.4: Obsługa wykrywania punktów montowania innych niż root w systemie Windows.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.join(path, * paths)¶

inteligentnie łączy jeden lub więcej składników ścieżki. Zwracana wartość tokonkatenacja ścieżki i wszystkich elementów * ścieżek z dokładnie onedirectory separator (os.sep) po każdej niepustej części z wyjątkiem theast, co oznacza, że wynik zakończy się separatorem tylko wtedy, gdy ostatnia część jest pusta. Jeśli komponent jest ścieżką absolutną, wszystkie poprzednie komponenty są odrzucane, a dołączanie kontynuuje się z komponentu ścieżki absolutnej.

w systemie Windows litera dysku nie jest resetowana, gdy napotkany jest komponent ścieżki bezwzględnej(np. r'\foo'). Jeśli komponent zawiera driveletter, wszystkie poprzednie komponenty są wyrzucane, a litera dysku jest ustawiona. Zauważ, że ponieważ dla każdego dysku istnieje bieżący katalog,os.path.join("c:", "foo") reprezentuje ścieżkę względem bieżącego katalogu na dysku C: (c:foo), a nie c:\foo.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki dla path I paths.

os.path.normcase(path)¶

normalizuje przypadek nazwy ścieżki. W systemie Windows Konwertuj wszystkie znaki w ścieżce na małe litery, a także Konwertuj ukośniki do przodu na ukośniki do tyłu.W innych systemach operacyjnych zwróć ścieżkę bez zmian.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.normpath(path)¶

normalizuje nazwę ścieżki przez zwijanie zbędnych separatorów i up-level tak, że A//B, A/B/, A/./B i A/foo/../Bwszystkich A/B. Ta manipulacja łańcuchem znaków może zmienić znaczenie ścieżki zawierającej dowiązania symboliczne. W systemie Windows konwertuje ukośniki do przodu na ukośniki do tyłu. Aby znormalizować przypadek, użyj normcase().

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.realpath(path)¶

zwraca kanoniczną ścieżkę podanej nazwy pliku, eliminując wszelkie symboliczne linki napotkane w ścieżce (jeśli są obsługiwane przez system operacyjny).

Uwaga

gdy pojawią się cykle dowiązań symbolicznych, zwracana ścieżka będzie jednym z elementów cyklu, ale nie ma gwarancji, który z nich będzie.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

zmieniono w wersji 3.8: dowiązania symboliczne i połączenia są teraz rozwiązywane w systemie Windows.

os.path.relpath(path, start=os.curdir)¶

zwraca względną ścieżkę do ścieżki z bieżącego katalogu lub z opcjonalnego katalogu startowego. Jest to obliczanie ścieżki: system plików nie jest dostępny w celu potwierdzenia istnienia lub natury ścieżki lub startu.

start domyślnie os.curdir.

Dostępność: Unix, Windows.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.samefile(path1, path2)¶

zwraca True jeśli oba argumenty nazwy ścieżki odnoszą się do tego samego pliku lub katalogu.Jest to określane przez numer urządzenia i numer i-węzła i powoduje wystąpienie wyjątku, jeśli wywołanie os.stat() dla którejkolwiek ze ścieżek nie powiedzie się.

Dostępność: Unix, Windows.

zmieniono w wersji 3.2: Dodano obsługę systemu Windows.

zmiana w wersji 3.4: System Windows używa teraz tej samej implementacji, co wszystkie inne platformy.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.sameopenfile(fp1, fp2)¶

zwraca True jeśli deskryptory plików fp1 i fp2 odnoszą się do tego samego pliku.

Dostępność: Unix, Windows.

zmieniono w wersji 3.2: Dodano obsługę systemu Windows.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.samestat(stat1, stat2)¶

zwraca True jeśli krotki stat1 i stat2 odnoszą się do tego samego pliku.Te struktury mogły zostać zwrócone przez os.fstat(),os.lstat()lub os.stat(). Ta funkcja implementuje porównanie używane przez samefile() i sameopenfile().

Dostępność: Unix, Windows.

zmieniono w wersji 3.4: Dodano obsługę systemu Windows.

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.split(path)¶

podziel ścieżkę pathname na parę, (head, tail) gdzie tail jest ostatnim składnikiem pathname, a head jest wszystkim, co prowadzi do tego. Część Tail nigdy nie będzie zawierała ukośnika; jeśli ścieżka kończy się ukośnikiem, ogon będzie pusty. Jeśli w ścieżce nie ma ukośnika, head będzie pusty. Jeśli ścieżka jest pusta, zarówno head, jak i tail są puste. Końcowe ukośniki są usuwane z głowy, chyba że jest to główny (tylko jedno lub więcej ukośników). We wszystkich przypadkach join(head, tail) zwraca ścieżkę do tej samej lokalizacji co path (ale łańcuchy mogą się różnić). Zobacz również funkcje dirname()ibasename().

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.splitdrive(path)¶

podziel ścieżkę pathname na parę (drive, tail) gdzie drive jest punktem montowania lub pustym łańcuchem. W systemach, które nie używają napędów, napęd zawsze będzie pustym ciągiem. We wszystkich przypadkach drive+ tail będzie taka sama jak path.

w systemie Windows dzieli nazwę ścieżki na dysk / UNC sharepoint i ścieżkę względną.

jeśli ścieżka zawiera literę dysku, dysk będzie zawierał wszystko do dwukropka włącznie.np. splitdrive("c:/dir") zwraca ("c:", "/dir")

jeśli ścieżka zawiera ścieżkę UNC, dysk będzie zawierał nazwę hosta i udział, do czwartego separatora, ale nie wliczając.np. splitdrive("//host/computer/dir") zwraca ("//host/computer", "/dir")

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.splitext(path)¶

podziel ścieżkę pathname na parę (root, ext) tak, że root + ext ==path, a ext jest pusty lub zaczyna się kropką i zawiera co najwyżej jeden okres. Początkowe okresy w nazwie podstawowej są ignorowane; splitext('.cshrc') zwraca ('.cshrc', '').

zmiana w wersji 3.6: akceptuje obiekt podobny do ścieżki.

os.path.supports_unicode_filenames

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

More: