venerdì 11 gennaio 2013

Modulo os, funzioni per file e directory

Continuo l'esame delle funzioni fornite dal modulo os per l'interazione con file e directory (cartelle), iniziato nel post precedente, qui.

listdir(path) ci restituisce la lista contenente i nomi degli oggetti contenuti in path. Non sono in ordine e non sono inclusi i nomi speciali "." e ".."


Come si vede dallo screenshot la lista possiamo sortarla noi.

mkdir(path, [mode]) crea la directory path, con modalità (permessi) mode (opzionale, non darlo va benissimo).

come si vede abbiamo creato la dir nuova che adesso cancelliamo

Per cancellare uno o più file usare remove.
È possibile creare più directories una dentro l'altra con makedirs.

rename(src, dst) cambia il nome a un file o una dir, da src a dst.

Un altro modulo contenente funzioni di manipolazione dei pathname è os.path.

abspath(path) restituisce il nome assoluto, cioè dalla root


basename() restituisce il nome senza percorso

Attenzione che è diverso dal comando di shell basename, come si vede dall'ultimo esempio.

dirname(path) restituisce la directory di path; è l'opposto di basename visto prima


exists() ci dice se l'oggetto esiste; dipende anche dai permessi.


expanduser() l'abbiamo già visto, comunque ecco


expandvars() ci permette di ritrovare le variabili di sistema


getsize() ritorna le dimensioni, in bytes

Attenzione che per una dir ritorna 4096 (o un'altra dimensione fissa, dipende dal file system) e non quella dei files che contiene.

isfile() e isdir() ci dicono se il file e la directory esistono


islink() ci dice se esiste il link simbolico


join() unisce i path; attenzione che è maliziosa, vedi il secondo esempio

se del caso usare normpath(); attenzione ai pasticci


relpath() ritorna il nome relativo alla directory corrente o a una posizione data


split() divide la path in una coppia in cui il secondo termine è l'ultima componente del path


splitext() separa l'estensione dalla path

OK, queste sono le funzioni principali che Python ci mette a disposizione per gestire file, directory, link e quant'altro. Non sono tutte qui ma a questo punto avrete capito che prima di metterci a scriverne di nostre conviene vedere se non ci sono già. Le trovate qui

E, naturalmente la stessa cosa vale per gli altri moduli, per esempio fate un salto a sys

O volete che faccia un altro post noioso come questo?

Juhan

Indice del sequel "Mission Python" qui.

Alla prossima!

1 commento: