Uno degli scenari che incontrerai spesso come sviluppatore di Python è la gestione dei file. È quindi per avere alcune competenze che riguardano la gestione dei file sotto la cintura.
Per questo tutorial, ti daremo una di quelle abilità. Imparerai come rinominare file single o più utilizzando Python."
Con questo fuori mano, iniziamo.
Python Rinomine File - Modulo OS
Uno dei moduli più utili nell'ecosistema Python è il modulo OS. Ti fornisce molti strumenti e funzionalità per interagire con il sistema operativo.
Il modulo OS è molto esteso, e quindi non possiamo esplorarlo dall'inizio alla fine. Tuttavia, concentriamoci sull'unica funzione che ci consente di rinominare i file sul sistema.
La funzione Rename () nel modulo OS di Python consente di rinominare un file esistente sul sistema.
La sintassi è come mostrato di seguito:
sistema operativo.rinominare (file, destinazione)Prende il percorso del file di destinazione e il percorso per il nuovo nome file come parametri. Poiché stai rinominando un file, è necessario assicurarsi che sia i parametri del file che.
Nota: sebbene il modulo OS sia parte della libreria standard di Python, dovrai importarlo prima dell'uso.
Seguire insieme agli esempi forniti di seguito per scoprire come possiamo rinominare un file utilizzando la funzione Rename ().
Esempio 1: rinominare un file
Supponiamo che abbiamo un file chiamato "Backup.catrame "e vogliamo rinominarlo in" backup_raw.catrame."Per semplicità, supponiamo che il file che desideriamo rinominare si trovi nella stessa directory del nostro script Python.
Utilizzando un semplice codice Python (origine sotto), possiamo rinominare il file. Lo screenshot seguente mostra la directory corrente prima di rinominare il file.
Possiamo quindi eseguire il codice mostrato di seguito:
dall'importazione del sistema operativo RinominaAbbattiamo il codice.
Iniziamo importando la funzione Rinomina dal modulo OS. Non è necessario importare tutto il codice dal modulo OS quando non ne abbiamo bisogno.
Creiamo quindi due variabili. Uno che detiene il percorso del file che desideriamo rinominare. L'altro detiene il percorso del nuovo nome file.
Infine, chiamiamo la funzione Rename () e passiamo i parametri di origine e destinazione. L'esecuzione del codice dovrebbe rinominare il file di destinazione, come mostrato nella schermata risultante.
E lì ce l'abbiamo, abbiamo rinominato con successo il file dal backup.Zip to Backup_raw.cerniera lampo.
Esempio 2 - Percorsi dei file di Windows
Facciamo un altro esempio in cui il file target si trova in una directory diversa. Tieni presente che la struttura del percorso cambierà a seconda del sistema operativo target.
Ad esempio, supponiamo che desideriamo rinominare il file chiamato "Backups.zip "che si trova nella directory" backups "dell'utente" UNIX "a" Backups_raw.cerniera lampo."
Sui sistemi UNIX, possiamo utilizzare il codice seguente per rinominare il file come:
dall'importazione del sistema operativo RinominaIn questo caso, stiamo fornendo il percorso assoluto al file vecchio e rinominato.
Per Windows, System, possiamo modificare il percorso per assomigliare al codice seguente:
dall'importazione del sistema operativo RinominaNell'esempio sopra, stiamo usando un doppio carattere di backslash per sfuggire al singolo carattere di backslash utilizzato nei percorsi dei file di Windows.
Tieni presente che a Python potrebbe non piacere molto questa strada. Dai un'occhiata alla funzione di join () di Python dal modulo OS per imparare come puoi superare questo.
Esempio 3 - Gestione degli errori
Sebbene la funzione Rename () consente di rinominare qualsiasi file da qualsiasi posizione nel filesystem, può comportare errori se, ad esempio:
È quindi una buona pratica implementare un meccanismo di gestione degli errori. Per semplicità, cercheremo di attenersi al tentativo/tranne il blocco.
Considera il codice di esempio mostrato di seguito:
dall'importazione del sistema operativo RinominaNel codice sopra, utilizziamo un blocco try/tranne per gestire l'errore FileNotFound.
Un altro esempio è se il file target esiste già. Un codice di esempio è come mostrato:
dall'importazione del sistema operativo RinominaE se non abbiamo l'autorizzazione per modificare il file? Per questo, possiamo ringraziare il permesso. Controlla il codice semplice mostrato di seguito:
dall'importazione del sistema operativo RinominaEsempio 4 - Rinomina più file
In alcuni casi, potremmo avere una directory con un elenco di file che desideriamo rinominare qualcos'altro.
Come dovremmo farlo?
Il primo passo sarebbe quello di ottenere l'elenco di tutti i file nella directory di destinazione e archiviarli in un iterabile.
Per fortuna, la funzione ListDir dal modulo OS ci consente di fare esattamente questo.
Possiamo quindi iterare su ogni elemento nell'oggetto iterabile usando un ciclo e assegnargli un nuovo nome.
Allo stesso modo, cercheremo di attenersi a un semplice esempio.
Nel nostro esempio, abbiamo una cartella chiamata Apache_velocity contenente, hai indovinato, modelli di velocità Apache.
La struttura della directory è come mostrata:
ls -la apache_velocityIl codice sopra è relativamente semplice e può essere notevolmente migliorato. Ma per evitare complicazioni eccessive, restamo con esso.
Iniziamo importando la funzione di cui abbiamo bisogno.
Importiamo anche la funzione join () dal sistema operativo.Modulo del percorso. Questa funzione ci consente di costruire percorsi di file compatibili completi e multipiattaforma.
Successivamente, creiamo una variabile che trattiene il percorso alla directory di destinazione. io.e., la directory di cui desideriamo rinominare.
Successivamente, creiamo un ciclo che itera su ciascun file nella directory target utilizzando ListDir. All'interno del ciclo, otteniamo il percorso di origine usando la funzione di join.
E infine, rinominiamo i file aggiungendo un .BAK ESTENTION a ogni file.
Se eseguiamo il codice sopra, dovremmo vedere un output come mostrato
Possiamo vedere che i file sono stati rinominati su old_filename.Bak.
Conclusione
In questo tutorial, abbiamo esplorato come possiamo rinominare i file usando Python. Abbiamo capito come lavorare con la funzione Rinomina che ci consente di rinominare un singolo o più file.
Grazie per la lettura e la codifica felice!!