English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial di base di Python

Controllo dei flussi di Python

Funzione in Python

Tipi di dati in Python

Operazioni di file di Python

Oggetti e classi di Python

Data e ora di Python

Conoscenze avanzate di Python

Manuale di riferimento di Python

Gestión de directorios y archivos en Python

In questo articolo, imparerai a gestire file e directory in Python, ovvero creare una directory, rinominarla, elencare tutte le directory e utilizzarle.

Cos'è una directory in Python?

Se il tuo programma Pythonda trattaremoltefilepuoi disporre di codice in directory diverse per rendere le cose più gestibili.

Le directory o le cartelle sono una raccolta di file e sottodirectory. Python ha l'os moduloche ci fornisce molte utili funzioni per la gestione delle directory (e dei file).

Ottieni directory corrente

Possiamo ottenere la directory di lavoro corrente utilizzando il metodo getcwd().

Questo metodo restituisce la directory di lavoro corrente come stringa. Possiamo anche ottenerla come oggetto byte utilizzando il metodo getcwdb().

>>> import os
>>> os.getcwd()
'C:\\Program Files\\PyScripter'
>>> os.getcwdb()
b'C:\\Program Files\\PyScripter'

I backslash aggiuntivi rappresentano la sequenza di escape. La funzione print() la presenterà correttamente.

>>> print(os.getcwd())
C:\Program Files\PyScripter

Cambia directory

Possiamo utilizzare il metodo chdir() per cambiare la directory di lavoro corrente.

Il percorso che dobbiamo cambiare deve essere fornito come stringa a questo metodo. Possiamo utilizzare la barra obliqua (/) o il backslash (\) per separare i percorsi.

È più sicuro utilizzare la sequenza di escape quando si utilizzano backslash.

>>> os.chdir('C:\\Python33')
>>> print(os.getcwd())
C:\Python33

Elenca cartelle e file

Puoi sapere tutti i file e le sottocartelle nella directory utilizzando il metodo listdir().

Questo metodo accetta un percorso e restituisce l'elenco delle sottocartelle e dei file nel percorso. Se non viene specificato un percorso, restituirà l'elenco delle sottocartelle e dei file della directory di lavoro corrente.

>>> print(os.getcwd())
C:\Python33
>>> os.listdir()
['DLLs',
'Doc',
'include',
'Lib',
'libs',
'LICENSE.txt',
'NEWS.txt',
'python.exe'
'pythonw.exe',
'README.txt',
'Scripts',
'tcl',
'Tools'
>>> os.listdir('G:\\')
['$RECYCLE.BIN',
'Movies',
'Music',
'Photos',
'Series',
'System Volume Information'

Creare una nuova directory

Possiamo utilizzare il metodo mkdir() per creare una nuova directory.

Questo metodo accetta il percorso della nuova directory. Se non viene specificato un percorso completo, verrà creata una nuova directory nel percorso di lavoro corrente.

>>> os.mkdir('test')
>>> os.listdir()
['test']

Rinominare directory o file

Il metodo rename() può rinominare directory o file.

Il primo parametro è il nome vecchio, mentre il nuovo nome deve essere il secondo parametro.

>>> os.listdir()
['test']
>>> os.rename('test','new_one')
>>> os.listdir()
['new_one']

Eliminare directory o file

Utilizzando il metodo remove() è possibile eliminare (eliminare) file.

Allo stesso modo, il metodo rmdir() eliminerà una directory vuota.

>>> os.listdir()
['new_one', 'old.txt']
>>> os.remove('old.txt')
>>> os.listdir()
['new_one']
>>> os.rmdir('new_one')
>>> os.listdir()
[]

Tuttavia, noterai che il metodo rmdir() può solo eliminare directory vuote.

Per eliminare una directory non vuota, possiamo utilizzare il metodo rmtree() interno del modulo shutil.

>>> os.listdir()
['test']
>>> os.rmdir('test')
Traceback (chiamata più recente per ultima):
...
OSError: [WinError 145] La directory non è vuota: 'test'
>>> import shutil
>>> shutil.rmtree('test')
>>> os.listdir()
[]