Méthodes de copie de fichier Python
Python fournit des fonctions intégrées pour copier facilement des fichiers à l'aide des utilitaires du shell du système d'exploitation.
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)
Voici les étapes pour copier un fichier en Python
Étape 1) Avant de copier un fichier, nous devons obtenir le chemin d'accès au fichier d'origine dans le répertoire actuel. Dans le code -
- Déclarer la variable
- Application de la fonction de fractionnement à une variable
Explication du code
- Nous allons d'abord vérifier que notre fichier "guru99.txt" existe ou non. Depuis que 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 obtenons le chemin, nous allons séparer le chemin et le nom du fichier
- Pour cela, nous allons utiliser la
path.split
fonction de fractionnement sur la variable source - Le code lorsqu'il est exécuté imprime séparément le " nom du fichier " et le " chemin du fichier "
Étape 2) Nous utilisons le module Shutil pour créer une copie du fichier existant. Ici, nous avons utilisé pour créer une copie de notre fichier existant "guru99.txt."
Explication du code
- Prenez le nom de fichier d'origine "guru99.txt" et ajoutez les lettres .bak à la fin "guru99.txt.bak". Ce nom avec l'extension .bak va être notre copie en double
- 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 est créé sur le côté droit du panneau
Étape 3) La fonction de copie copie uniquement le contenu du fichier mais aucune autre information. Pour copier les méta-données associées au fichier, l'autorisation du fichier et d'autres informations, vous devez utiliser la fonction " copystat ". Avant d'exécuter ce code, nous devons supprimer notre fichier de copie "guru99.text.bak".
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 l'autorisation du fichier, l'heure de modification et les métadonnées . Vous pouvez accéder à votre shell OS pour vérifier les informations.
Voici le code
import osimport shutilfrom os import pathdef main():# make a duplicate of an existing fileif path.exists("guru99.txt"):# get the path to the file in the current directorysrc = path.realpath("guru99.txt");#seperate the path from the filterhead, tail = path.split(src)print("path: +head)print("file: +tail)#let's make a backup copy by appending "bak" to the namedst = src+".bak"# nowuse the shell to make a copy of the fileshutil.copy(src, dst)#copy over the permissions,modificationshutil.copystat(src,dst)if __name__=="__main__":main()
Étape 4) Vous pouvez récupérer les informations sur le fichier texte modifié en dernier
- Code Line # 15 - Il indique le jour, la date, le mois, l'année et l'heure de la dernière modification du fichier .txt (guru99). Nous utilisons le module path pour obtenir les détails de l'heure de modification du fichier, puis nous allons utiliser la fonction time des classes de temps c pour convertir cela en une heure lisible. Alors , quand nous courons le code, nous pouvons voir le fichier guru99.txt Dernière modification le Lun 8 janvier ème à 13:35 2018.
- Ligne de code # 17 - Il fait la même chose en donnant des informations sur la modification de fichier, mais il a un format différent pour le représenter. Ici, nous utilisons la fonction Get Modification Time (path.getmtime ("guru99.txt")). Maintenant, au lieu d'utiliser la fonction de temps c, nous allons utiliser la fonction From Time Stamp et allons construire un objet date-heure. En sortie, vous pouvez voir que le détail de l'heure de modification du fichier est imprimé dans un format différent 2018-01-08, 13: 35: 51.334072
Voici le code
## Example file for working with o.s path moduleimport osfrom os import pathimport datetimefrom datetime import date, time, timedeltaimport timedef main():# Get the modification timet = time.ctime(path.getmtime("guru99.txt.bak"))print(t)print(datetime.datetime.fromtimestamp(path.getmtime("guru99.txt.bak")))if __name__ == "__main__":main()
Résumé
- Pour créer une copie du fichier existant à l'aide du code shutil.copy (src, dst)
- Pour copier toutes les informations du fichier original dans le fichier dupliqué comme l' autorisation de fichier, l'heure de modification ou les informations de méta-données en utilisant le code shutil.copystat (src, dst)