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

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow