当前位置 主页 > 服务器问题 > win服务器问题汇总 >

    python定时复制远程文件夹中所有文件

    栏目:win服务器问题汇总 时间:2019-10-13 08:42

    本文实例为大家分享了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\

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持IIS7站长之家。