Comment copier un fichier en Python
-
Shutil
copyfile()
Méthode pour copier un fichier en Python -
Shutil
copy()
Méthode pour copier un fichier avec des permissions -
Comparaison entre la méthode
copy()
et la méthodecopyfile()
-
copyfileobj()
Méthode pour copier un objet de fichier -
Méthode
copy2()
pour préserver les métadonnées - Conclusion des méthodes de copie d’un fichier en Python
Python est livré avec plusieurs modules prêts à l’emploi pour prendre en charge les opérations d’entrée/sortie de fichiers (telles que le système d’exploitation, les sous-processus et le shutil). Vous copierez simplement les fichiers et les répertoires en utilisant le module shutil
. Les opérations telles que la duplication, le transfert ou la suppression de fichiers et de répertoires sont effectuées à l’aide de cette fonction utilitaire. Les quatre méthodes suivantes sont abordées ici.
Shutil copyfile()
Méthode pour copier un fichier en Python
Il copie le matériel source dans un fichier nommé destination. Si la cible n’est pas inscriptible, une exception IOError
se produira dans le processus de copie. Si les fichiers d’origine et de destination sont identiques, le message SameFileError
est renvoyé. Les noms de chemin des fichiers source et destination sont fournis sous forme de chaînes de caractères.
copyfile(source_file, destination_file)
Les périphériques de caractères ou de blocs et les pipes ne sont pas supportés par cette méthode.
import shutil
source = r"C:\Users\DelftStack\Documents\test\test.txt"
destination = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
shutil.copyfile(source, destination)
Shutil copy()
Méthode pour copier un fichier avec des permissions
La méthode copy()
fonctionne comme la commande Unix cp
. En copiant son contenu, cette méthode synchronise les permissions du fichier cible avec le fichier source. Si vous copiez le même fichier, elle lance également la commande SameFileError
. Sa syntaxe est la suivante.
shutil.copy(src_file, dest_file, *, follow_symlinks=True)
Exemple de la méthode Shutil copy()
pour copier un fichier avec des permissions
import shutil
src = r"C:\Users\DelftStack\Documents\test\test.txt"
des = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
shutil.copy(src, des)
Comparaison entre la méthode copy()
et la méthode copyfile()
- La méthode
copy()
définit souvent les droits d’accès au fichier lorsque le contenu est copié, alors que la méthodecopyfile()
ne copie que les données. - Essentiellement, dans son implémentation, la méthode
copyfile()
utilise la méthodecopyfileobj()
. En comparaison, la méthodecopy()
utilise les fonctionscopyfile()
etcopymode()
. - Le point ci-dessus indique clairement que
copyfile()
sera un peu plus rapide quecopy()
parce qu’il y a un travail supplémentaire à faire avec cette dernière (préservation des permissions).
copyfileobj()
Méthode pour copier un objet de fichier
Cette fonction copie le fichier dans l’objet du chemin d’accès ou du fichier cible. Si l’objet cible est un objet fichier, vous devez le fermer après avoir appelé directement copyfileobj()
. La taille du tampon est utilisée pour spécifier la longueur du tampon. Il s’agit du nombre d’octets conservés en mémoire pendant le processus de copie.
La syntaxe de la méthode copyfileobj()
est ci-dessous.
shutil.copyfileobj(src_file_object, dest_file_object[, length])
import shutil
filename1 = r"C:\Users\DelftStack\Documents\test\test.txt"
fileA = open(filename1, "rb")
filename2 = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
fileB = open(filename2, "wb")
shutil.copyfileobj(fileA, fileB)
Méthode copy2()
pour préserver les métadonnées
La méthode copy2()
est similaire à la méthode copy()
, mais en plus de copier le contenu du fichier, elle préserve également toutes les métadonnées du fichier source.
shutil.copy2(src_file, dest_file, *, follow_symlinks=True)
import shutil
src = r"C:\Users\DelftStack\Documents\test\test.txt"
des = r"C:\Users\DelftStack\Pictures\test2\test2.txt"
shutil.copy2(src, des)
Conclusion des méthodes de copie d’un fichier en Python
A la fin, un tableau est joint pour toutes les méthodes et permet de mieux comprendre l’utilité de shutil
.
Fonction | copie des métadonnées | les autorisations de copies | peut utiliser le tampon | la destination peut être le répertoire |
---|---|---|---|---|
shutil.copy |
Non | Oui | Non | Oui |
shutil.copyfile |
Non | Non | Non | Non |
shutil.copy2 |
Oui | Oui | Non | Oui |
shutil.copyfileobj |
Non | Non | Oui | Non |
Article connexe - Python File
- Comment obtenir tous les fichiers d'un répertoire
- Comment ajouter du texte à un fichier en Python
- Comment vérifier si un fichier existe en Python
- Comment trouver des fichiers avec une certaine extension seulement en Python
- Comment lire des lignes spécifiques d'un fichier en Python
- Lire un fichier texte et imprimer son contenu en Python