Python Rinomina file

Python Rinomina file
“Python è un ottimo strumento per l'automazione e la creazione di strumenti semplici che ti consentono di semplificare la tua vita. Ti fornisce strumenti che ti consentono di interagire con le risorse di sistema di basso livello come disco, kernel OS, memoria, networking, ecc.

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 Rinomina
src = "./backup.cerniera lampo"
dest = "./backup_raw.cerniera lampo"
rinominare (SRC, dest)

Abbattiamo 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 Rinomina
src = "/home/unix/backups/backups.cerniera lampo"
dest = "/home/unix/backups/backups_raw.cerniera lampo"
rinominare (SRC, dest)

In 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 Rinomina
src = "c: \\ utenti \\ unix \\ backups \\ backups.cerniera lampo"
dest = "c: \\ utenti \\ unix \\ backups \\ backups_raw.cerniera lampo"
rinominare (SRC, dest)

Nell'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:

  1. Il file target non esiste.
  2. Un file con un nome simile alla destinazione esiste già.
  3. Autorizzazione insufficiente sul file di destinazione e nella directory.

È 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 Rinomina
src = "./old_file.TXT"
dest = "./nuovo file.TXT"
Tentativo:
rinominare (SRC, dest)
Tranne FileNotfounderror come E:
stampa (e)

Nel 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 Rinomina
src = "./old_file.TXT"
dest = "./nuovo file.TXT"
Tentativo:
rinominare (SRC, dest)
Tranne FileExistsError come E:
stampa (e)

E 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 Rinomina
src = "./old_file.TXT"
dest = "./nuovo file.TXT"
Tentativo:
rinominare (SRC, dest)
Tranne il permissionerror come E:
stampa (e)

Esempio 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_velocity
totale 24
DRWXR-XR-X@ 5 Salem Staff 160 5 giu 01:37 .
DRWX ------+ 9 Salem Staff 288 5 giugno 01:41.
-RW-R-R-1 Salem Staff 81 5 giu 01:39 Master.VM
-RW-R-R-- 1 Salem Staff 81 5 giu 01:39 Root.VM
-RW-R-R-1 Salem Staff 81 5 giu 01:39 Slave.VM
Vediamo come possiamo rinominare questi file in qualcos'altro.
Dal Rename di importazione da sistema operativo, ListDir
dal sistema operativo.Importazione del percorso join
# imposta la dir bersaglio
Target_dir = "/utenti/nome utente/desktop/apache_velocity"
#iterare i file
Per file in ListDir (target_dir):
src = join (target_dir, file)
rinominare (src, f "src.Bak ")
Print ("Rinomina ricorsiva di successo")
Stampa (ListDir (target_dir))

Il 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.

  1. Rename (), che ci consente di rinominare i file
  2. listDir (), che ci consente di elencare i file all'interno di una determinata directory.

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!!