目的:ファイルサイズとファイルの最終更新日時限り、同じ名前の一貫性がある場合は、別のコンピュータにフォルダに共有のバックアップコンピュータのファイルを達成するために、ファイルがコピーされません
Pythonのバージョン:Python3.7.1
Pythonスクリプト:
日時インポート日付、日時 輸入OS 輸入shutilの 輸入JSON SOURCE_PATH = os.path.abspath(R&LTと' ソースフォルダ' ) TARGET_PATH = os.path.abspath(R&LTと' ターゲットフォルダ' ) jsonfilepath = os.path.abspath(TARGET_PATH + R " \ log.json " ) デフ負荷(): (jsonfilepath、オープンと' R ' Fとして): データ = json.load(f)は 、戻りデータ デフストア(データ): (jsonfilepath、オープンと' ワット' FWとして): json.dump(データ、FW) デフMAKEDIR(DIR): もし ないos.path.exists(DIR): os.makedirs(DIR) もし __name__ == ' __main__ ' : LOGDATA = ロード()
makeddir(TARGET_PATH)
のIF os.path.exists(SOURCE_PATH): #のアドレス自体を参照するルートは現在このフォルダトラバースされている #のdirsにはリストされ、そのフォルダの内容が全てです(サブディレクトリを含まない)ディレクトリの名前 #のファイル(サブディレクトリは含まない)、そのフォルダ内のすべてのファイルの内容、またリストである ため、ルート、dirsに、ファイル内os.walk(SOURCE_PATH): のためファイル内のファイル: SRC_FILE = os.path.join(ルート、ファイル) FSIZE = os.path.getsize(SRC_FILE) fmtime = os.path.getmtime(SRC_FILE) ログ = { ' ファイル':SRC_FILE、' FSIZE ':FSIZE、' fmtime ' :fmtime} isCopy = 0 のためのアイテムで:LOGDATA #を介してファイルのコピーかどうか IF(項目[ " ファイル"のSRC_FILEで] == と項目[ " FSIZE " ] == FSIZE とアイテム[ " fmtime " ] == fmtime)。 iscopy = 1つの ブレーク IF isCopyの== 0: #は、日・ファイル・フォルダを介してコピーにコピーされていない ターゲットTARGET_PATH + = " \\ " + date.today()のstrftime(" %mを%% Y D " ) MAKEDIR(ターゲット) logdata.append(ログ) shutil.copy(SRC_FILE、ターゲット) 店舗(LOGDATA) 印刷(「コピーファイルが完成します!」)