Python Language
Il modulo os
Ricerca…
introduzione
Questo modulo fornisce un modo portatile per utilizzare la funzionalità dipendente dal sistema operativo.
Sintassi
- importazione os
Parametri
Parametro | Dettagli |
---|---|
Sentiero | Un percorso per un file. Il separatore del percorso può essere determinato da os.path.sep . |
Modalità | Il permesso desiderato, in ottale (es. 0700 ) |
Crea una directory
os.mkdir('newdir')
Se è necessario specificare le autorizzazioni, è possibile utilizzare l'argomento della mode
facoltativo:
os.mkdir('newdir', mode=0700)
Ottieni la directory corrente
Usa la funzione os.getcwd()
:
print(os.getcwd())
Determina il nome del sistema operativo
Il modulo os
fornisce un'interfaccia per determinare il tipo di sistema operativo su cui è in esecuzione il codice.
os.name
Questo può restituire uno dei seguenti in Python 3:
-
posix
-
nt
-
ce
-
java
Informazioni più dettagliate possono essere recuperate da sys.platform
Rimuovi una directory
Rimuovi la directory sul path
:
os.rmdir(path)
Non dovresti usare os.remove()
per rimuovere una directory. Quella funzione è per i file e usarla nelle directory risulterà in un OSError
Segui un link simbolico (POSIX)
A volte è necessario determinare l'obiettivo di un collegamento simbolico. os.readlink
farà questo:
print(os.readlink(path_to_symlink))
Modifica le autorizzazioni su un file
os.chmod(path, mode)
dove la mode
è il permesso desiderato, in ottale.
makedir - creazione di directory ricorsiva
Data una directory locale con i seguenti contenuti:
└── dir1
├── subdir1
└── subdir2
Vogliamo creare lo stesso subdir1, subdir2 sotto una nuova directory dir2, che non esiste ancora.
import os
os.makedirs("./dir2/subdir1")
os.makedirs("./dir2/subdir2")
Esecuzione di questo risultato
├── dir1
│ ├── subdir1
│ └── subdir2
└── dir2
├── subdir1
└── subdir2
dir2 viene creato solo la prima volta che è necessario, per la creazione di subdir1.
Se avessimo usato os.mkdir , avremmo avuto un'eccezione perché dir2 non sarebbe esistito ancora.
os.mkdir("./dir2/subdir1")
OSError: [Errno 2] No such file or directory: './dir2/subdir1'
a os.makedirs non piacerà se la directory di destinazione esiste già. Se lo ripetiamo di nuovo:
OSError: [Errno 17] File exists: './dir2/subdir1'
Tuttavia, questo potrebbe essere risolto facilmente rilevando l'eccezione e controllando che la directory sia stata creata.
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