Python3实现文件复制与延迟批量复制脚本
本文介绍了在Python 3.6.1环境下实现文件复制及带延时功能的批量复制脚本。通过shutil模块完成简单文件重命名复制,并扩展加入time模块实现循环中的延时控制,适用于测试客户端报文传输速率等场景。
本示例基于Python 3.6.1版本环境进行开发。

简单文件复制脚本实现
在测试客户端传输报文速率的工作场景中,编写了以下两个Python脚本以辅助完成相关任务。
第一个脚本旨在实现简单的文件复制功能,并在复制过程中对目标文件进行重命名处理。
第二个脚本在第一个脚本的基础上进行了扩展,增加了循环执行时的延时功能,以模拟特定速率的文件生成。
该脚本的典型应用场景是将源文件复制并重命名,具体的重命名策略是在原文件名末尾追加生成的随机数,以确保文件名的唯一性。
#!/usr/bin/python3
#coding=GB2312
import os
import os.path
import random
import shutil
count = 0
#源文件夹
src="E:\\file\\CEB411Message__20171115123454.xml"
#目标文件夹
tar="E:\\file\\target4\\"
while count < 10:
print (count, " 执行复制任务")
ram=str(random.randint(1,1000000))
tar="E:\\file\\target4\\"+"CEB411Message_74967F7C570E_"+ram+".xml"
count = count + 1
shutil.copyfile(src,tar)
else:
print (count, " 复制任务完成")
代码中指定 #coding=GB2312 的原因在于编码兼容性问题:在JetBrains PyCharm Community Edition 2017.1.2 x64环境下使用utf-8编码运行正常,但在Windows 8系统中直接执行脚本时会出现报错。经测试调整编码方式为GB2312后解决了该字符集冲突问题。
带延时功能的批量复制脚本
第二个程序引入了循环结构,并采用引入延时生成的方式,使得文件复制操作能够按照设定的时间间隔逐步执行。
#!/usr/bin/python3
#coding=GB2312
import os
import os.path
import random
import time
import shutil
#源文件夹
src="E:\\file\\xml\\311.xml"
count = 0
#总循环次数(10)
while count <10:
eachcount = 0
#每次循环生成的条数(5)
while eachcount <5:
#生成随机数放在报文名中,用于区分报文名
ram=str(random.randint(1,1000000000))
tar="E:\\file\\xml\\3111\\"+"CEB411Message_116EA6A4-9D5A-4418-8281-74967F7C570E_"+ram+".xml"
eachcount=eachcount+1
shutil.copyfile(src,tar)
count = count + 1
#执行一次循环休眠时间(5秒)
time.sleep(5)
else:
print (count, " 复制任务完成")
综上所述,通过结合shutil和time模块,可以灵活实现不同需求下的文件复制任务。
以上就是本文介绍的全部内容,希望这些脚本示例对大家在Python文件处理或工作实践中有所帮助,感谢阅读。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









