Python Rinominare file e directory utilizzando os.rename()

โšก Riepilogo intelligente

Python os.rename() permette di rinominare file e directory. Qui imparerai a usare os.rename(), os.renames(), shutil.move() e pathlib Path.rename(), oltre a come rinominare una directory e rinominare in batch piรน file con esempi chiari.

  • ๏ธ os.rename(): os.rename(src, dst) rinomina un file o una directory; la sorgente deve esistere.
  • ๐Ÿ—‚๏ธ os.renames(): os.renames() crea automaticamente anche le cartelle di destinazione mancanti.
  • ๐Ÿšš shutil.move(): La funzione shutil.move() rinomina e puรฒ spostare i file tra diversi file system.
  • ๐Ÿ pathlib: Path.rename() rinomina i file in modo orientato agli oggetti (Python 3.4+).
  • ๐Ÿค– Aiuto tramite intelligenza artificiale: Strumenti di intelligenza artificiale come Copilot generano istantaneamente codice per la ridenominazione e la ridenominazione in batch.

Python Rinomina il file os.rename()

Python file Rename

Python rinominare() file รจ un metodo utilizzato per rinominare un file o una directory in Python programmazione. IL Python Il metodo file rename() puรฒ essere dichiarato passando due argomenti denominati src (Sorgente) e dst (Destinazione).

Sintassi

Questa รจ la sintassi del metodo os.rename()

os.rename(src, dst)

Scheda Sintetica

origine: Source รจ il nome del file o della directory. Dovrebbe giร  esistere.

dst: Destinazione รจ il nuovo nome del file o della directory che desideri modificare.

Esempio:

import os  
os.rename('guru99.txt','career.guru99.txt')

Diamo un'occhiata all'esempio in dettaglio

รˆ possibile rinominare il file originale, abbiamo cambiato il nome del file da "Guru99.txtโ€ a โ€œCareer.guru99.txtโ€.

Python file Rename

  • Per rinominare il file "guru99.txt", utilizzeremo la "funzione di ridenominazione" nel modulo del sistema operativo
  • Quindi, quando il codice viene eseguito, puoi osservare che sul lato destro del pannello viene creato un nuovo file "career.guru99.txt", che abbiamo rinominato con il nostro file originale.

Ecco il codice completo

import os
import shutil
from os import path

def main():
	# make a duplicate of an existing file
    if path.exists("guru99.txt"):
	# get the path to the file in the current directory
        src = path.realpath("guru99.txt");
		
	# rename the original file
        os.rename('guru99.txt','career.guru99.txt') 
		
if __name__ == "__main__":
    main()

Come rinominare una directory in Python

Il metodo os.rename() rinomina anche le directory, non solo i file. รˆ necessario specificare il nome della cartella corrente come origine e il nuovo nome come destinazione.

import os
os.rename("old_directory", "new_directory")

Se la directory di origine non esiste, Python genera un errore FileNotFoundError, quindi รจ buona norma verificare prima il percorso.

Rinominare un file utilizzando os.renames()

Il metodo os.renames() rinomina un file e crea automaticamente le directory intermedie mancanti nel percorso di destinazione. Rimuove inoltre le directory vuote rimaste nel percorso di origine.

import os
os.renames("guru99.txt", "archive/2024/career.txt")

Qui le cartelle archive e 2024 vengono create automaticamente se non esistono giร .

Rinominare un file utilizzando shutil.move()

La funzione shutil.move() sposta un file in una nuova posizione, il che equivale a rinominarlo quando la destinazione รจ la stessa directory.

import shutil
shutil.move("guru99.txt", "career.guru99.txt")

A differenza di os.rename(), shutil.move() puรฒ anche spostare un file tra diversi file system o unitร .

Rinominare un file utilizzando il modulo pathlib

In Python Dalla versione 3.4 in poi, il modulo pathlib offre un metodo Path.rename() orientato agli oggetti per rinominare i file.

from pathlib import Path

file = Path("guru99.txt")
file.rename("career.guru99.txt")

Il metodo rename() restituisce un nuovo oggetto Path che punta al file rinominato.

Come rinominare piรน file in Python

Per rinominare piรน file contemporaneamente, scorri i file in una directory con os.listdir() e chiama os.rename() per ciascuno di essi. L'esempio seguente aggiunge un prefisso numerato a ogni file.

import os

folder = "myfiles"
for count, filename in enumerate(os.listdir(folder)):
    new_name = f"file_{count}.txt"
    os.rename(os.path.join(folder, filename), os.path.join(folder, new_name))

L'utilizzo di os.path.join() garantisce il corretto funzionamento del codice su qualsiasi sistema operativo.

DOMANDE FREQUENTI

Importa os e chiama os.rename(src, dst), passando il nome del file corrente e il nuovo nome. Il file sorgente deve giร  esistere, oppure Python genera l'errore FileNotFoundError.

os.rename() rinomina un singolo file o una directory, mentre os.renames() crea anche le directory intermedie mancanti e rimuove le cartelle sorgente vuote dopo lo spostamento.

Sรฌ. shutil.move(src, dst) rinomina un file quando la destinazione รจ la stessa cartella e puรฒ anche spostare file tra file system diversi, a differenza di os.rename().

Utilizza os.rename('old_dir', 'new_dir'). La stessa funzione os.rename() funziona sia per i file che per le directory, purchรฉ la directory di origine esista.

Scorri l'elenco delle cartelle (o's.listdir) e chiama il metodo os.rename() per ogni file. Usa os.path.join() per costruire i percorsi completi in modo che il codice funzioni su qualsiasi sistema operativo.

Gli assistenti basati sull'IA, come GitHub Copilot, completano automaticamente le chiamate a os.rename() e pathlib e generano cicli di rinomina in batch a partire da un commento che descrive il modello di denominazione desiderato.

Sรฌ. Gli strumenti basati sull'intelligenza artificiale possono automatizzare la scrittura di script per la ridenominazione in batch, applicare modelli come prefissi di numerazione o di data e aggiungere la gestione degli errori per nomi mancanti o duplicati.

On Windowsos.rename() genera un'eccezione FileExistsError se la destinazione esiste. Su sistemi Unix, sovrascrive silenziosamente il file. Verificare prima con os.path.exists() per evitare la perdita di dati.

Riassumi questo post con: