python定时复制远程文件夹中所有文件
本文实例为大家分享了python定时复制远程文件夹中文件的具体代码,供大家参考,具体内容如下
import os, shutil, sys import threading import configparser import 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 = True shutil.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).seconds print(end_time, " 本次执行完毕,等待", time, "秒……")''' print(end_time, " 本次执行完毕,等待", span, "秒……") #定时复制 def timer_copy(src_path, dst_path): remote_copy(src_path, dst_path) global timer timer = 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 span span = config.getint('run', 'timeSpan') global file_size file_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=20000 fileSize=5000 [path] srcPath=\\192.168.0.108\xxxx\ dstPath=f:\downloads\