2017-06-26 3 views
0

J'essaye de dupliquer un fichier en python. En passant par shutil, j'ai seulement trouvé des solutions pour copier et déplacer les fichiers mais j'ai besoin de dupliquer un fichier pour le renommer et conserver l'original.Dupliquer un fichier en python

photos54_TempString = "photos54/thumb-" + artistName + "_54.jpg" 
    photos54_NewString = "quickManik_Music/" + songID + "-" + 
    artistName + "_54.jpg" 

    copyfile(photos54_TempString, photos54_NewString) 
+10

Pouvez-vous expliquer comment ce que vous voulez faire est différent de « copie »? – smarx

+4

I.e. Qu'en est-il de 'shutil.copy (photos54_TempString, photos54_NewString)' est incorrect? – smarx

+1

Corrigez-moi si je me trompe mais la copie ne conserve pas le fichier photos54_TempString. Au lieu de cela, il se déplace et le renomme photos54_NewString –

Répondre

0

Utilisez la fonction shutil.copyfile.

Voici un exemple, en utilisant le terminal et l'interpréteur Python:

$ cd /tmp 
$ touch myfile 
$ python3 
Python 3.5.3 (default, May 10 2017, 15:05:55) 
[GCC 6.3.1 20161221 (Red Hat 6.3.1-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import shutil 
>>> shutil.copyfile('myfile', 'mysecondfile') 
'mysecondfile' 
>>> 
$ ls my* 
myfile mysecondfile 
+0

Les commentaires sous mon poste expliquent la réponse. Puisque je veux garder l'original, je dois utiliser shutil.copy() plutôt que shutil.copyfile() –

+1

@ManikKhurana Non, 'shutil.copy' et' shutil.copyfile' fonctionnent de la même manière à cet égard. Cependant, 'copy' copie également les permissions du fichier, contrairement à' copyfile'. C'est 'shutil.move' qui ne conserve pas l'original, c'est-à-dire * déplace * l'original vers un nouvel emplacement. –