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

yipeiwu_com6年前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\

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python celery分布式任务队列的使用详解

python celery分布式任务队列的使用详解

一、Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考...

解决Python plt.savefig 保存图片时一片空白的问题

更新 这里我会列出对本文的更新。 2017 年 9 月 28 日:修正几处错字,优化排版。 问题 当使用如下代码保存使用 plt.savefig 保存生成的图片时,结果打开生成的图片却是...

python 实现数字字符串左侧补零的方法

因为做新闻爬虫,url里面0-9的日期要左侧加零。经过查询之后得到了两种方法。 一、先设一个足够大的数,比如1000000,然后加上当前的数字比如9,得到1000009,然后转化为字符串...

Python数据结构与算法之图结构(Graph)实例分析

Python数据结构与算法之图结构(Graph)实例分析

本文实例讲述了Python数据结构与算法之图结构(Graph)。分享给大家供大家参考,具体如下: 图结构(Graph)——算法学中最强大的框架之一。树结构只是图的一种特殊情况。 如果我们...

PyCharm2018 安装及破解方法实现步骤

PyCharm2018 安装及破解方法实现步骤

PyCharm就是Python语言开发中一个很受欢迎的IDE,界面类似于visual studio,android studio,集成的功能也很多。 1>. 安装 首先要...