当前位置:首页 > 编程教程 > Python技术文章 > python定时复制远程文件夹中所有文件

python定时复制远程文件代码实现

  • 发布时间:
  • 作者:码农之家
  • 点击:94

这篇文章主要知识点是关于python、复制、远程文件、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python数据分析与挖掘实战
  • 类型:Python大小:46.8 MB格式:PDF作者:张良均
立即下载

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\

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

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

您可能感兴趣的文章:

  • 如何解决Python中open()函数打开文件路径报错问题
  • 用python打开文件的详细方法
  • Python读取mat文件保存为pickle格式的实例代码
  • python引用另一个文件的函数的方法
  • Python中glob模块查找文件路径的实例方法
  • python如何创建文件
  • Python实现跨文件全局变量的方法
  • 详解python实现写数字文件名的递增保存文件方案
  • 关于python异常和文件处理机制实例详解
  • 《Python编程:从入门到实践》第十章:文件和异常
  • 相关电子书
    学习笔记
    网友NO.578931

    python复制列表时[:]和[::]之间有什么区别

    前言 new = old[:] Python老鸟都知道以上代码是什么意思。它复制列表old到new。它对于新手来说是种困惑而且应该避免使用这种方法。不幸的是[:]标记法被广泛使用,可能是Python程序员不知道更好的列表复制法吧。然而本文给大家介绍的是关于python复制列表时[:]和[::]之间有什么区别,下面来一起看看吧 我们可以(浅)使用[:]复制列表: l = [1, 2, 3]z1 = l[:] 我们也可以(浅)使用[::]复制它: z2 = [::] 现在z1 == z2将为True.在Explain Python's slice notation阅读答案后,我了解这些图片的工作原理. 但是,我的问题是这两个内部是否有区别?在复制中比其他效率更高,还是做完全相同的事情? 最佳答案 他们之间绝对没有区别,至少在Python 3中.如果你愿意,可以使用dis.dis来检查每个这些使用的字节码: l = [1, 2, 3, 4] 针对l [:]发出的字节码: from dis import disdis('l[:]') 1 0 LOAD_NAME 0 (l) 3 ……

    网友NO.188922

    python批量复制文件夹下所有文件大小

    Python---进阶---文件操作---获取文件夹下所有文件的数量和大小 一、####编写一个程序,统计当前目录下每个文件类型的文件数 ####思路: - 打开当前的文件夹 - 获取到当前文件夹下面所有的文件 - 处理我们当前的文件夹下面可能有文件夹的情况(也打印出来) - 做出统计 import os#获取到当前文件夹下面所有的文件all_files = os.listdir(os.curdir) #os.curdir 表示当前目录 curdir:currentdirectorytype_dict = dict()for each_file in all_files: # 如果说我们的each_file是文件夹 if os.path.isdir(each_file): type_dict.setdefault(文件夹, 0) type_dict[文件夹] += 1 else: # 如果不是文件夹,而是文件,统计我们的文件 ext = os.path.splitext(each_file)[1] #获取到文件的后缀 type_dict.setdefault(ext, 0) type_dict[ext] += 1 for each_type in type_dict: print(该文件夹下面有类型为{}的文件{}个.format(each_type, type_dict[each_type])) 二、 # 编写一个程……

    <
    1
    >

    Copyright 2018-2020 www.xz577.com 码农之家

    投诉 / 推广 / 赞助:QQ:520161757