本文實例為大家分享了python定時復制遠程文件夾中文件的具體代碼,供大家參考,具體內容如下
import os, shutil, sysimport threadingimport configparserimport datetime #復制文件def remote_copy(src_path, dst_path): start_time = datetime.datetime.now()print(start_time, " 開始復制……")bCopy = False;try:# 獲取源文件夾中的所有文件及文件夾files = os.listdir(src_path)for file in files:#生成絕對路徑src_file = os.path.join(src_path,file)# 判斷是否為文件if os.path.isfile(src_file) and (os.path.getsize(src_file) < file_size) : dst_file = os.path.join(dst_path,file)if not os.path.exists(dst_file):bCopy = Trueshutil.copyfile(src_file, dst_file)'''copy_cmd = 'xcopy /D %s %s'%(src_file,dst_file)os.popen(copy_cmd)'''print(src_file, ' => ', dst_file, 'copy done!')#else:# print(dst_file, "已存在!") except Exception as e:print("無法發現文件,請檢查網絡連接!")os.system('pause')sys.exit() else:if not bCopy:print("未發現新文件……")end_time = datetime.datetime.now()'''time = span - (end_time - start_time).secondsprint(end_time, " 本次執行完畢,等待", time, "秒……")''' print(end_time, " 本次執行完畢,等待", span, "秒……") #定時復制def timer_copy(src_path, dst_path):remote_copy(src_path, dst_path) global timertimer = threading.Timer(span, timer_copy, [src_path, dst_path])timer.start() # 程序入口if __name__ == "__main__": #讀取配置文件config = configparser.ConfigParser()config.read("config.ini") src_path = config.get('path', 'srcPath')dst_path = config.get('path', 'dstPath')global spanspan = config.getint('run', 'timeSpan')global file_sizefile_size = config.getint('run', 'fileSize') # 目的路徑不存在則建立路徑if not os.path.exists(dst_path):os.makedirs(dst_path) print("配置文件為 :config.ini")print("執行間隔為 :", span)print("文件限制為 :", file_size)print("輸入文件夾為:", src_path)print("輸出文件夾為:", dst_path) inp = input("是否繼續(y/n):")if inp == 'y' or inp == 'Y': timer = threading.Timer(1, timer_copy, [src_path, dst_path])timer.start() #測試#remote_copy(src_path, dst_path)else:sys.exit()
配置文件config.ini
[run]timeSpan=20000fileSize=5000[path]srcPath=//192.168.0.108/xxxx/dstPath=f:/downloads/
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網之家。
新聞熱點
疑難解答