Copier le fichier dans Python: méthode shutdown.copy(), méthode shutdown.copystat()

⚡ Résumé intelligent

Python Le module shutil permet de copier des fichiers. La méthode shutil.copy() duplique le contenu d'un fichier, tandis que shutil.copystat() copie également les permissions, la date de modification et les métadonnées. Vous découvrirez ici ces deux méthodes à travers un exemple détaillé.

  • 📋 shutil.copy(): shutil.copy(src, dst) copie le contenu d'un fichier vers une nouvelle destination.
  • 🇧🇷 shutil.copystat(): shutil.copystat(src, dst) copie également les permissions, l'heure et les métadonnées.
  • 🤖 Aide de l'IA : Les outils d'IA comme Copilot génèrent instantanément du code de copie Shutil.

Copier le fichier dans Python

Python Méthodes de copie de fichier

Python fournit des fonctions intégrées pour copier facilement des fichiers à l'aide du Operautilitaires System Shell.

La commande suivante est utilisée pour copier le fichier

shutil.copy(src,dst)

La commande suivante est utilisée pour copier le fichier avec les informations de métadonnées

shutil.copystat(src,dst)

Comment copier un fichier dans Python

Voici les étapes pour copier le fichier dans Python en utilisant la méthode shutdown() :

Étape 1) Capturez le chemin d'origine dans le répertoire courant
Avant de copier un fichier, nous devons obtenir le chemin d'accès au fichier d'origine dans le répertoire courant. Dans le code –

  1. Déclaration d'une variable
  2. Application de la fonction de partage sur une variable

Copier un fichier dans Python

Code Explication

  • Nous allons d'abord vérifier que notre fichier « guru99.txt » existe ou non. Puisque nous avons créé le fichier guru99.txt plus tôt, nous savons qu'il existe et nous continuerons avec le code.
  • Nous stockons le chemin du fichier dans la variable «src" si votre fichier existe
  • Une fois que nous avons le chemin, nous allons séparer le chemin et le nom du fichier
  • Pour cela, nous allons utiliser le split path.split fonction sur la variable source
  • Code lorsqu'il est exécuté, il affiche «nom de fichier" et "chemin du fichier" séparément

Étape 2) Créer une copie de notre fichier existant en utilisant le module Shutil
Nous utilisons le module Shutil pour créer une copie du fichier existant. Ici, nous avions l'habitude de créer une copie de notre fichier existant « guru99.txt ».

Copier un fichier dans Python

Code Explication

  • Prenez le nom du fichier original « guru99.txt » et ajoutez les lettres .bak à la fin « guru99.txt.bak ». Ce nom avec l'extension .bak sera notre duplicata
  • Et puis nous allons utiliser la fonction de copie de l'utilitaire pour copier de la source vers la destination
  • Lorsque vous exécutez le code, vous verrez un fichier en double avec l'extension .bak créé sur le côté droit du panneau.

Étape 3) Copiez les métadonnées associées au fichier, l'autorisation du fichier et d'autres informations
La fonction de copie copie uniquement le contenu du fichier mais aucune autre information. Copier métadonnées associé au fichier, à l'autorisation du fichier et à d'autres informations que vous devez utiliser "copiestat" fonction. Avant d'exécuter ce code, nous devons supprimer notre fichier de copie « guru99.text.bak ».

Copier un fichier dans Python

Une fois que vous avez supprimé le fichier et exécuté le programme, il créera une copie de votre fichier .txt mais cette fois avec toutes les informations telles que autorisation du fichier, heure de modification et informations sur les métadonnées. Vous pouvez accéder au shell de votre système d’exploitation pour vérifier les informations.

Copier un fichier dans Python

Voici le code

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");
    
	#seperate the path from the filter
	head, tail = path.split(src)
	print("path:" +head)
	print("file:" +tail)
	
	#let's make a backup copy by appending "bak" to the name
	dst = src+".bak"
	# nowuse the shell to make a copy of the file
	shutil.copy(src, dst)
	
	#copy over the permissions,modification
	shutil.copystat(src,dst)
	
if __name__=="__main__":
	main()

Étape 4) Récupérer les informations
Vous pouvez récupérer les informations sur le fichier texte pour la dernière fois modifié

Copier un fichier dans Python

  • Code Ligne 15 : Elle indique la date, l’heure et le jour de la dernière modification du fichier .txt (guru99). Nous utilisons le module path pour obtenir les détails de la date et de l’heure de modification du fichier, puis nous allons utiliser… classes de temps c fonction de temps pour convertir cela en une heure lisible. Ainsi, lorsque nous exécutons le code, nous pouvons voir que le fichier guru99.txt a été modifié pour la dernière fois le Lun., 8 janv.th à 13h35 2018.
  • Code Ligne 17 : Elle fait la même chose, en fournissant des informations sur les modifications de fichiers, mais avec un format différent. Ici, nous utilisons Fonction Obtenir le temps de modification (chemin.getmtime("guru99.txt")). Maintenant, au lieu d'utiliser la fonction c time, nous allons utiliser À partir de la fonction Horodatage et je vais construire un objet date/heure. En sortie, vous pouvez voir que les détails de l'heure de modification du fichier sont imprimés dans un format différent 2018-01-08, 13:35:51.334072

Voici le code

#
# Example file for working with o.s path module

import os
from os import path
import datetime
from datetime import date, time, timedelta
import time

def main():

    # Get the modification time
    t = time.ctime(path.getmtime("guru99.txt.bak"))
    print(t)
    print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))

if __name__ == "__main__":
    main()

FAQ

Importez shutil, puis appelez shutil.copy(src, dst) pour copier le contenu du fichier. Utilisez shutil.copystat() pour copier également ses métadonnées.

shutil.copystat(src, dst) copie les permissions, la date de modification et les métadonnées d'un fichier vers la destination, mais pas son contenu.

shutil.copy() copie le contenu et les permissions, tandis que shutil.copy2() préserve également les métadonnées telles que l'horodatage. Utilisez copy2() pour conserver la date et l'heure de modification.

shutil.copy() accepte un répertoire de destination et copie les permissions ; shutil.copyfile() nécessite un chemin de fichier complet et ne copie que le contenu.

Utilisez shutil.copytree(src, dst) pour copier récursivement un répertoire entier et son contenu. Le dossier de destination ne doit pas déjà exister.

Les assistants IA comme GitHub Copilot complètent automatiquement les appels shutil.copy() et copystat() et suggèrent copy2() ou copytree() pour votre cas.

Oui. Les outils basés sur l'IA génèrent des routines de sauvegarde, choisissent la méthode de copie appropriée et ajoutent des vérifications d'existence avant de copier les fichiers ou les dossiers.

Utilisez os.path.getmtime(path) pour obtenir l'horodatage, puis convertissez-le avec time.ctime() ou datetime.fromtimestamp() pour obtenir une date lisible.

Résumez cet article avec :