Python Language
Moduł OS
Szukaj…
Wprowadzenie
Moduł zapewnia przenośny sposób korzystania z funkcji zależnych od systemu operacyjnego.
Składnia
- import os
Parametry
Parametr | Detale |
---|---|
Ścieżka | Ścieżka do pliku. Separator ścieżek można określić za pomocą os.path.sep . |
Tryb | Pożądane pozwolenie, ósemkowe (np. 0700 ) |
Utwórz katalog
os.mkdir('newdir')
Jeśli musisz określić uprawnienia, możesz użyć argumentu mode
opcjonalnego:
os.mkdir('newdir', mode=0700)
Pobierz bieżący katalog
Użyj funkcji os.getcwd()
:
print(os.getcwd())
Określ nazwę systemu operacyjnego
Moduł os
zapewnia interfejs do określania, jakiego rodzaju systemu operacyjnego aktualnie używa kod.
os.name
Może to zwrócić jeden z następujących elementów w Pythonie 3:
-
posix
-
nt
-
ce
-
java
Bardziej szczegółowe informacje można znaleźć na stronie sys.platform
Usuń katalog
Usuń katalog ze path
:
os.rmdir(path)
Nie należy używać os.remove()
do usuwania katalogu. Ta funkcja dotyczy plików, a użycie jej w katalogach spowoduje OSError
Postępuj zgodnie z dowiązaniem symbolicznym (POSIX)
Czasami musisz określić cel dowiązania symbolicznego. os.readlink
zrobi to:
print(os.readlink(path_to_symlink))
Zmień uprawnienia do pliku
os.chmod(path, mode)
gdzie mode
jest pożądanym uprawnieniem, ósemkowo.
makedirs - rekurencyjne tworzenie katalogu
Biorąc pod uwagę lokalny katalog o następującej treści:
└── dir1
├── subdir1
└── subdir2
Chcemy stworzyć ten sam podkatalog1, podkatalog2 w nowym katalogu katalog2, który jeszcze nie istnieje.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
Uruchomienie tego powoduje
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
katalog2 jest tworzony tylko za pierwszym razem, gdy jest potrzebny, do tworzenia katalogu subdir1.
Gdybyśmy zamiast tego używali os.mkdir , mielibyśmy wyjątek, ponieważ dir2 jeszcze by nie istniał.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
os.makedirs nie spodoba się, jeśli katalog docelowy już istnieje. Jeśli ponownie uruchomimy go ponownie:
OSError: [Errno 17] File exists: './dir2/subdir1'
Można to jednak łatwo naprawić, wychwytując wyjątek i sprawdzając, czy katalog został utworzony.
try:
os.makedirs("./dir2/subdir1")
except OSError:
if not os.path.isdir("./dir2/subdir1"):
raise
try:
os.makedirs("./dir2/subdir2")
except OSError:
if not os.path.isdir("./dir2/subdir2"):
raise