本文来源吾爱破解论坛
本帖最后由 py看考场 于 2019-3-17 22:59 编辑
今天刚注册完账号,想着一边学习一些软件破解的技术,一边为大家分享一些有趣的python实例,欢迎大家讨论及更正。。
一.实现要点:
1.如何检测U盘插入
2.如何复制目录树
3.如何写入文件
二.主要应用模块:
os 文件目录操作
shutil 高级文件目录处理
re 正则匹配
time
pyinstaller 打包
三.代码如下:
方法1:
[Python] 纯文本查看 复制代码
#!/usr/bin/env python # -*- coding:utf-8 -*- # author : jin time :2019/3/4 import os import time import shutil #U盘的盘符 u_disk_path = input('请输入你的U盘盘符:') u_disk_path += ':/' #文件拷贝到的路径 save_to_path = './' #开启一个死循环,每十秒检测一次,直到检测到U盘的插入 while True: if os.path.exists(u_disk_path): #copytree('olddir','newdir') shutil.copytree(u_disk_path, os.path.join(save_to_path, str(time.strftime('%Y-%m-%d_%H-%M-%S', time.localtime())))) print('成功拷贝U盘内容') break else: time.sleep(10)
这种方法较为简单,但是有两个缺陷,一是不能指定具体要拷贝文件的类型,二是不能指定要拷贝文件的大小。如果要实现这两个功能,可以参照方法二
方法2:
[Python] 纯文本查看 复制代码
#!/usr/bin/env python # -*- coding:utf-8 -*- # author : jin time :2019/3/5 #可以指定文件的格式与大小 import os, time, shutil, re #识别文件的格式 regex_filename = re.compile(r'(.*zip$)|(.*rar$)|(.*docx$)|(.*ppt$)|(.*xlx$)|(.*py$)') def usb_monitor(sleep_time, usb_path, copy_folder): if not os.path.exists(copy_folder): os.mkdir(copy_folder) a = 0 while True: time.sleep(sleep_time) start_time = time.time() file_num = 0 try: u = os.listdir(usb_path) #用于返回指定的文件夹包含的文件或文件夹的名字的列表 except FileNotFoundError: print('usb is not found') a = 0 continue if a > 0: print('usb has already copied') break copy_folder1 = os.path.join(copy_folder, time.strftime('%Y-%m-%d %H-%M', time.localtime())) os.mkdir(copy_folder1) # root为当前正在遍历的这个文件夹的本身的地址 # dirs是一个list,内容是该文件夹中所有目录的名字(不包含子目录) # files同样是list,内容是该文件夹中的所有的文件(不包含子目录) for root, dirs, files in os.walk(usb_path): if a == 0: print('start copy usb is {}'.format(dirs[0])) usb_name = dirs[0] a += 1 if len(files) == 0: continue for name in files: file = os.path.join(root, name) if regex_filename.match(file) and os.path.getsize(file) < 1024*1024*2: #字节大小(转化为2M) file_num += 1 print(file) file_create_time = time.strftime('%Y-%m-%d %H-%M-%S', time.localtime(os.path.getctime(file))) #输出文件创建时间 shutil.copy2(file, copy_folder1) #复制file到copy_folder1中,并且复制文件的权限位 else: continue if file_num == 0: print('usb is not found file') continue print('共下载{}份文件---用时:{}s'.format(file_num, time.time()-start_time)) if __name__ == '__main__': usb_monitor(1, 'F:\\', 'save_path')
四.备注:
1.大家可以根据自己盘符的实际情况去修改源码中的盘符
2.也可以根据自己的需求修改要拷贝的文件的类型,以及设定拷贝文件的大小
3.写完程序后还可以打开cmd窗口,把路径切换到程序所在路径,用pyinstaller -F 文件名 对程序进行打包
4.大家还可以提出更好的想法,进行交流
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: python基础_关键字学习
- 下一篇: 使用 Python 读写 Excel 文件(二)