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\

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

(0)

相关推荐

  • Python获取远程文件大小的函数代码分享

    复制代码 代码如下: def getRemoteFileSize(url, proxy=None):    """ 通过content-length头获取远程文件大小        url - 目标文件URL        proxy - 代理  """    opener = urllib2.build_opener()    if proxy:        if url.lower().startswith('https://'):    

  • python通过paramiko复制远程文件及文件目录到本地

    最近写运维自动化平台,需要用python写很多的小功能模块. 这里就分享一个用Python的paramiko来实现功能的一段代码: 复制远程服务器上的文件及文件夹到本地目录. 解释一下什么叫paramiko: paramiko是用python写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输以及远程命令执行. 安装paramiko也很简单,我用的是python3,装好了pip,可以直接用pip来安装

  • python 从远程服务器下载日志文件的程序

    复制代码 代码如下: import osimport sysimport ftplibimport socket ################################################################### sign in the ftp server and download the log file. # 登陆生产服务器下载日志##############################################################

  • Python实现HTTP协议下的文件下载方法总结

    本文介绍了几种常用的python下载文件的方法,具体使用到了htttplib2,urllib等包,希望对大家有帮忙. 1.简单文件下载 使用htttplib2,具体代码如下: h = httplib2.Http() url = 'http://www.jb51.net/ip.zip' resp, content = h.request(url) if resp['status'] == '200': with open(filename, 'wb') as f: f.write(content)

  • Python通过paramiko远程下载Linux服务器上的文件实例

    如下所示: #!/usr/local/bin/python # encoding:utf-8 import paramiko import os HOST_IP='59.110.12.72' REMOTE_PATH='/proc' REMOTE_FILENAME='meminfo' LOCAL_PATH='./proc' USERNAME='niu' PASSWORD='123456' def remote_scp(host_ip,remote_path,local_path,file_name

  • python使用Paramiko模块实现远程文件拷贝

    paramiko是用python写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.利用该模块,可以方便的进行ssh连接和sftp协议进行sftp文件传输以及远程命令执行. 通过安装包安装: wget http://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz wget http://www.lag.net/paramiko/download/paramiko-1.7.7.1.tar.gz tar

  • Python实现的远程文件自动打包并下载功能示例

    本文实例讲述了Python实现的远程文件自动打包并下载功能.分享给大家供大家参考,具体如下: 一 点睛 在Linux系统集群运营当中,时常需要批量远程执行Linux命令,并且双向同步文件的操作. 本示例通过使用spawn()方法执行ssh.scp 命令的思路来实现. 二 代码 import pexpect import sys ip="192.168.0.104" user="root" passwd="123456" target_file=&

  • python实现带错误处理功能的远程文件读取方法

    本文实例讲述了python实现带错误处理功能的远程文件读取方法.分享给大家供大家参考.具体如下: import socket, sys, time host = sys.argv[1] textport = "80" filename = sys.argv[3] try: s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) port = int(textport) s.connect((host, port)) fd = s.ma

  • python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法requests. 下面来看看三种方法是如何来下载zip文件的: 方法一: import urllib import urllib2 import requests print "downloading with urllib" url = 'http://www.jb51.net//te

  • Python实现批量下载文件

    Python实现批量下载文件 #!/usr/bin/env python # -*- coding:utf-8 -*- from gevent import monkey monkey.patch_all() from gevent.pool import Pool import requests import sys import os def download(url): chrome = 'Mozilla/5.0 (X11; Linux i86_64) AppleWebKit/537.36

随机推荐