本文实例为大家分享了python定时复制远程文件夹中文件的具体代码,供大家参考,具体内容如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
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
1
2
3
4
5
6
|
[run]
timespan = 20000
filesize = 5000
[path]
srcpath = \\ 192.168 . 0.108 \xxxx\
dstpath = f:\downloads\
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/weareu/article/details/80427311