python> shutil.copytree ()> ne pas écraser les fichiers> utiliser distutils.dir_util.copy_tree () à la place

Contrôle de fonctionnement


Raspberry Pi2 + raspbian

Afin de copier le fichier journal du moniteur de ligne dans des unités de dossier, cela a été fait comme suit.

shutil.copytree(srcpath, dstpath + "/Log/")

Cependant, hier soir, même si je prenais un journal tout en effectuant un test de communication continu, je ne pouvais obtenir qu'un journal du travail de jour. Il semble que l'écrasement du fichier ait échoué.

Référence 1. Question qui ne peut pas être écrasée @ SO Référence 2. Pour utiliser distutils.dir_util.copy_tree () @ SO

Je l'ai changé comme suit. Change Commit @ github

 #!/usr/bin/env python
 
 '''
+v0.2  2015 Dec. 13
+  - fix bug > did not overwrite files 
 v0.1  2015 Dec. 12
   - add USB memory insertion recognition
   - add folder copy feature
 @@ -20,6 +22,8 @@
 import os.path
 import sys
 import time
+import distutils
+from distutils import dir_util
 
 param = sys.argv
 
 @@ -36,7 +40,7 @@
 	if os.path.isdir(srcpath) and os.path.isdir(dstpath):
 		if chk1==False and chk2==False and chk3==True:
 			print "inserted"
-			shutil.copytree(srcpath, dstpath + "/Log/")
+			distutils.dir_util.copy_tree(srcpath, dstpath + "/Log/")
 			print "Copied"
 	time.sleep(0.5)

Recommended Posts

python> shutil.copytree ()> ne pas écraser les fichiers> utiliser distutils.dir_util.copy_tree () à la place
Lire et utiliser des fichiers Python à partir de Python
Pourquoi vous devriez utiliser urlopen au lieu d'urlretrieve pour télécharger des fichiers Python