Apprendre Python ? Voici comment copier un fichier

Apprendre Python ? Voici comment copier un fichier

Voulez-vous améliorer vos compétences Python ? Ensuite, vous pouvez essayer d'effectuer certaines tâches sur votre ordinateur avec Python. Copier et coller des fichiers d'un répertoire à un autre avec Python est une façon amusante de le faire.





En plus d'être amusant, il vous permet de lire et d'écrire des fichiers rapidement sans vous laisser distraire par votre code. Si vous débutez avec Python, c'est une compétence que vous devrez peut-être encore acquérir d'une manière ou d'une autre. Voyons donc comment copier des fichiers avec Python via cet article.





Conditions requises pour copier des fichiers avec Python

Il existe de nombreuses façons de copier et coller des fichiers avec Python. Ainsi, l'exigence pour le faire varie et dépend de la méthode que vous décidez d'utiliser.





Bien que vous n'ayez peut-être pas besoin de modules supplémentaires pour copier des fichiers avec Python, vous pouvez toujours utiliser des bibliothèques intégrées si vous le souhaitez.

Par exemple, si vous souhaitez utiliser le tu méthode, vous devez l'importer dans votre code. Cependant, l'un des moyens les plus populaires de copier des fichiers avec Python consiste à utiliser le silence une bibliothèque.



Voyons comment nous pouvons utiliser ces différentes méthodes pour copier des fichiers avec Python.

Comment copier des fichiers à l'aide de la bibliothèque Shut intégrée de Python

Les silence module est une bibliothèque Python intégrée et puissante permettant de lire et d'écrire rapidement des fichiers en Python.





Pour l'utiliser, il vous suffit de fournir le chemin complet des fichiers source et destination.

comment trouver quelle carte mère j'ai

En substance, silence prend ce format :





shutil.copy([source directory path], [destination directory path], follow_symlinks=True)

Par exemple, le code ci-dessous utilise Shutil.copy () pour copier un fichier nommé copier.txt à partir d'un dossier appelé mon dossier dans un autre nommé destination . Il renomme ensuite le fichier de destination en nouveauFichier.txt :

import shutil
sourceFile = 'C:/Users/some_directories/my_folder/copy.txt'
destinationFile = 'C:/Users/some_directories/destination/newFile.txt'
shutil.copy(sourceFile, destinationFile, follow_symlinks=True)

Notez que vous pouvez écrire votre code dans n'importe quel éditeur de code de votre choix. Vous pouvez ensuite l'exécuter en utilisant la ligne de commande.

Cependant, vous pouvez également utiliser l'environnement de développement intégré Python (IDLE) par défaut si vous n'êtes pas habitué à exécuter Python via la ligne de commande.

En rapport: Commandes d'invite de commande (CMD) que vous devez connaître

Les Shutil.copy La méthode ne copie pas les métadonnées du fichier source. Essentiellement, votre machine considère le fichier de destination comme un tout nouveau et lui donne de nouvelles métadonnées.

Cependant, pour copier les métadonnées avec le fichier d'origine, utilisez le Shutil.copy2 méthode:

import shutil
shutil.copy2(sourceFile, destinationFile, follow_symlinks=True)

La méthode ci-dessus préserve les métadonnées d'origine de l'ancien fichier dans le fichier de destination. Par exemple, le fichier de destination conserve la date de création du fichier source, sa taille et d'autres attributs.

Les follow_symlinks argument est une déclaration de lien symbolique qui permet silence suivre un chemin absolu. Par conséquent, vous devez l'inclure si les fichiers source et destination se trouvent dans des répertoires différents.

Mais si les deux fichiers se trouvent dans votre répertoire de travail actuel, vous n'avez pas besoin d'inclure un follow_symlinks . Si vous le faites, Python lève une exception de syntaxe.

comment ajouter à votre histoire instagram

Donc, si vous collez le fichier source dans votre répertoire de travail actuel, votre code devrait ressembler à ceci :

import shutil
shutil.copy2(sourceFile, destinationFile)

En plus d'utiliser les méthodes de fermeture ci-dessus, vous pouvez également utiliser Shutil.copyfile ou Shutil.copyfileobj .

À l'aide de Shutil.copyfileobj est un peu différent car il nécessite le ouvert fonction. Ensuite, vous devez lire et écrire le binaire en incluant le 'rb' et 'wb' arguments.

Voyons comment le Shutil.copyfileobj La méthode fonctionne en utilisant les mêmes répertoires que ceux que nous avons utilisés précédemment :

import shutil
sourceFilePath = open('C:/Users/some_directories/my_folder/copy.txt', 'rb')
destinationFilePath = open('C:/Users/some_directories/destination/newFile.txt', 'wb')
shutil.copyfileobj(sourceFilePath, destinationFilePath)

Noter que Shutil.copyfileobj () ne nécessite pas le follow_symlinks argument.

Cependant, Shutil.copyfile () fonctionne à peu près de la même manière .copie et .copy2 Est-ce que. Ils ne diffèrent que de manière insignifiante dans leurs fonctions internes.

Pour utiliser le Shutil.copyfile () méthode:

import shutil
sourceFilePath = 'C:/Users/some_directories/my_folder/copy.txt'
destinationFilePath = 'C:/Users/some_directories/destination/newFile.txt'
shutil.copyfile(sourceFilePath, destinationFilePath)

Comment copier des fichiers avec le module os

Les tu le module utilise deux méthodes intégrées pour copier des fichiers ; os.system() et os.popen () méthodes.

Les os.system() La méthode vous permet d'imiter l'environnement de ligne de commande.

Cependant, un inconvénient des méthodes os est qu'elles ne copient que les fichiers dans votre répertoire de travail actuel.

Pour utiliser le os.system() méthode sous Windows :

import os
os.system('copy source.txt destination.txt)

Vous pouvez également utiliser la fonction intégrée xcopie Commande de terminal Windows :

import os
os.system('xcopy source.txt destination.txt)

Pour utiliser le os.system méthode sous Linux, remplacez copie avec cp :

import os
os.system('cp source.txt destination.txt)

Comment copier des fichiers à l'aide de la méthode os.popen

Pour utiliser cette méthode, remplacez os.system() avec os.popen () .

Sous Windows, utilisez :

import os
os.popen('copy source.txt destination.txt)

Comme nous l'avons fait avec os.system() , remplacer copie avec cp pour utiliser cette méthode sous Linux :

import os
os.popen('cp source.txt destination.txt)

Comment copier des fichiers avec le module de sous-processus de Python

En plus des méthodes ci-dessus, vous pouvez également utiliser le sous-processus() bibliothèque pour copier des fichiers en Python :

import subprocess as sp
sp.call('copy sourceFile destinationFile', shell=True)

Cependant, sous Linux, utilisez :

import subprocess as sp
sp.call('cp sourceFile destinationFile', shell=True)

Les sous-processus la bibliothèque utilise également sous-processus.check_out() méthode. ça marche de la même façon sous-processus.appel () Est-ce que:

import subprocess as sp
sp.check_out('copy sourceFile destinationFile', shell=True)

Sous Linux, remplacez copie avec cp :

import subprocess as sp
sp.check_out('cp sourceFile destinationFIle', shell=True)

Cependant, comme les méthodes os, les méthodes de sous-processus ne fonctionnent qu'avec les fichiers de votre répertoire de travail actuel.

Noter: Vous pouvez également copier des fichiers dans un dossier s'il se trouve dans le même répertoire de travail que le fichier source. Tout ce que vous avez à faire est de remplacer le nom du fichier de destination par le nom du dossier de destination. Cependant, assurez-vous que le dossier de destination et le fichier source se trouvent dans votre répertoire de travail actuel.

Comment copier des fichiers en Python sans utiliser de bibliothèques

Vous pouvez également copier des fichiers en Python sans dépendre d'aucune bibliothèque. Comme pour la méthode Shutil, vous n'avez besoin que des chemins complets des répertoires source et destination.

liste de souhaits amazon recherche par nom

Voici comment y parvenir :

sourcePath = 'C:/Users/source_directories/my_folder/copy.txt'
destinationPath = 'C:/Users/some_directories/destination_directories/newFile.txt'
with open(sourcePath, 'rb') as read:
with open(destinationPath, 'wb') as myfile:
myfile.write(read.read())

Pour rendre le code réutilisable, vous pouvez le modifier en fonction :

def copyFile(source=None, destination=None):
if not (source and destination)==None:
with open(source, 'rb') as read:
with open(destination, 'wb') as myfile:
myfile.write(read.read())
else:
print('Please enter the source and destination paths')
copyFile(sourcePath, destinationPath)

C'est ça. Vous venez de créer un copieur de fichiers réutilisable avec Python sans utiliser de bibliothèque.

Continuez à automatiser les tâches avec Python

En plus de vous aider à rester concentré sur votre code lors de la création de projets, la copie de fichiers avec Python vous permet de mieux comprendre la gestion des fichiers avec Python. Cependant, jouer avec les tâches Python est un moyen d'améliorer vos compétences Python, surtout si vous êtes débutant.

Par exemple, vous pouvez modifier la date et l'heure sur votre PC avec le module os. Vous pouvez même écrire des commandes bash personnalisées avec Python si vous le souhaitez.

Partager Partager Tweeter E-mail Comment créer vos propres programmes de ligne de commande en Python avec un clic

Vous voulez créer vos propres programmes en ligne de commande Python, mais vous trouvez cela trop difficile ? Utilisez Click, un outil Python utile pour rationaliser votre code.

Lire la suite
Rubriques connexes
  • La programmation
  • Python
A propos de l'auteur Idisou Omisola(94 articles publiés)

Idowu est passionné par tout ce qui concerne les technologies intelligentes et la productivité. Pendant son temps libre, il s'amuse avec le codage et passe à l'échiquier quand il s'ennuie, mais il aime aussi de temps en temps rompre avec la routine. Sa passion pour montrer aux gens le chemin autour de la technologie moderne le motive à écrire plus.

Plus de Idowu Omisola

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner