这篇文章主要知识点是关于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的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。
Copyright 2018-2020 www.xz577.com 码农之家
版权投诉 / 书籍推广 / 赞助:520161757@qq.com
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 ……
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])) 二、 # 编写一个程……