Python Language
OS-modulen
Sök…
Introduktion
Denna modul ger ett portabelt sätt att använda operativsystemberoende funktionalitet.
Syntax
- import os
parametrar
Parameter | detaljer |
---|---|
Väg | En sökväg till en fil. Vägseparatorn kan bestämmas av os.path.sep . |
Läge | Det önskade tillståndet i oktal (t.ex. 0700 ) |
Skapa en katalog
os.mkdir('newdir')
Om du behöver ange behörigheter kan du använda det valfria mode
:
os.mkdir('newdir', mode=0700)
Hämta aktuell katalog
Använd os.getcwd()
:
print(os.getcwd())
Bestäm namnet på operativsystemet
os
modulen tillhandahåller ett gränssnitt för att avgöra vilken typ av operativsystem koden för närvarande körs på.
os.name
Detta kan returnera något av följande i Python 3:
-
posix
-
nt
-
ce
-
java
Mer detaljerad information kan hämtas från sys.platform
Ta bort en katalog
Ta bort katalogen vid path
:
os.rmdir(path)
Du bör inte använda os.remove()
att ta bort en katalog. Den här funktionen är för filer och att använda den i kataloger kommer att resultera i en OSError
Följ en symlink (POSIX)
Ibland måste du bestämma målet för en symlink. os.readlink
gör detta:
print(os.readlink(path_to_symlink))
Ändra behörigheter för en fil
os.chmod(path, mode)
där mode
är önskad behörighet, i oktal.
makedirs - skapande av rekursiv katalog
Får en lokal katalog med följande innehåll:
└── dir1
├── subdir1
└── subdir2
Vi vill skapa samma underkatalog1, underkatalog 2 under en ny katalog dir2, som inte finns ännu.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
Att köra detta resulterar i
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 skapas bara första gången det behövs för att skapa subdir1.
Om vi istället hade använt os.mkdir , skulle vi ha haft ett undantag eftersom dir2 inte hade funnits ännu.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
os.makedirs gillar inte det om målkatalogen redan finns. Om vi kör det igen:
OSError: [Errno 17] File exists: './dir2/subdir1'
Detta kan dock lätt åtgärdas genom att fånga undantaget och kontrollera att katalogen har skapats.
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