Le fichier cible étant des informations de chemin, seul le nom du fichier a été acquis à l'avance.
py:os.path.basename
file_name = os.path.basename(txt_fle_line)[:-1]
XCOPY J'ai également essayé d'utiliser XCOPY temporairement avec "subprocess.call", J'avais aussi besoin de bouger, alors j'ai décidé d'utiliser shutil pour plus de polyvalence.
subprocess.call
import subprocess
subprocess.call("xcopy %s %s /D /K /R /Y /C /V /E"%(file_path, send))
Depuis que nous avons adopté le nouveau au moment de la mise à jour, nous avons pris du temps et l'avons comparé.
shutil.py
if os.path.exists(rename_file) :
copy_date = os.stat(rename_file).st_mtime
org_date = os.stat(file_path).st_mtime
if copy_date < org_date:
print "%s copy... %s" %(send, grid_name)
shutil.copy2(file_path, rename_file)
else:
Un script qui modifie le nom du fichier lors de la copie du fichier cible en se référant au texte.
copy_target.py
import os
import shutil
from datetime import datetime as dt
txt_file = open(r"copy_target.txt","r")
for target_line in txt_file:
if target_line == '\n':
break
target_cl = target_line[:-1].split(',')
file_path = target_cl[0].strip('"')
file_name = target_cl[1].strip('"')
grid_cl = file_name.split('_')
if len(grid_cl) == 6:
photo = grid_cl[0]
area = grid_cl[1]
b_cl = grid_cl[2]
b_rw = grid_cl[3]
b_no = grid_cl[4]
flg = grid_cl[5]
grid_name = area + b_cl + b_rw
send = r'G:\grid\\' + area + '\\' + grid_name
if os.path.isdir(send) :
rename_file = send +'\\'+ file_name
if os.path.exists(rename_file) :
copy_date = os.stat(rename_file).st_mtime
org_date = os.stat(file_path).st_mtime
if copy_date < org_date:
print "%s copy... %s" %(send, grid_name)
shutil.copy2(file_path, rename_file)
else:
print "%s copy new... %s" %(send, grid_name)
shutil.copy2(file_path, rename_file)
else:
is_not_file = open(r"D:\python\file_serch\target_work\is_not_GRID.txt", "a+")
is_not_file.write(file_path + "," + file_name + "," + "no path" + "\n")
is_not_file.close()
Recommended Posts