pythonを利用してファイルのコピーをとる
日付を比較して新しいものだけコピー
データ元とコピー先のファイルの更新日時を比較して、データ元のファイルが新しいファイルだけをコピー先にコピーするコード
import pandas as pd
import datetime
import glob
import os
import shutil
from tqdm import tqdm
####フォルダ設定 ####
origin_path = 'C://01_データ元/'
copy_path = 'C://02_コピー先/'
####カウンタのリセット ####
copy = 0
stay = 0
error = 0
print('****************処理開始*******************')
print(datetime.datetime.now())
#フォルダ内のファイルパスの取得
File_path_orign = glob.glob(origin_path + '*')
for file_pass in tqdm(File_path_orign):
#元データの更新日時取得
origin_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_pass))
#コピー先データの更新日時取得
file_name = file_pass[len(origin_path ):] #余計なフォルダパス部分を削除
file_target_path = data_path + file_name
try:
target_time = datetime.datetime.fromtimestamp(os.path.getmtime(file_target_path))
time_delta = (target_time - origin_time)
if time_delta.days < 0 :
shutil.copy2(file_pass, data_path)
copy += 1
else:
stay += 1
except:
shutil.copy2(file_pass, data_path)
error += 1
print('コピーエラー:'file_pass)
print('****************ファイルコピー*******************')
print('コピー:' + str(copy) + ' ステイ:' + str(stay) + ' 新規追加:' + str(error))
print(datetime.datetime.now())
「os.path.getmtime(file_pass)」にて対象ファイルの更新日時を取得する。
取得対象の日時に合わせてget***timeを変更する
更新日時: mtime
作成日時: ctime(Windows)、birthtime(macOSなど一部のUNIX:)
最終アクセス日時:atime