python程序怎么保存到u盘_python实现usb自动拷贝程序的方法

python实现usb自动拷贝程序的方法

发布时间:2020-06-28 09:07:05

来源:亿速云

阅读:135

作者:清晨

这篇文章将为大家详细讲解有关python实现usb自动拷贝程序的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

用python写一个程序,让它在后台运行。每当有u盘插入的时候,就自动拷贝其中重要文件。

如何判断U盘的插入与否?

153187.png

首先我们打开电脑终端,进入/Volumes目录,这时候插入U盘,可以发现它被挂载在了这个目录之下,也就是说,我们只要在固定时间扫描这个目录,当这个目录有新文件夹出现的时候,很可能有U盘被插入了。

我的设计是这样的,用time.sleep(3)函数,让程序保持运行状态,并且每隔三秒查看一下/Volumes/目录,如果多出来文件夹,就将其拷贝到另外的文件夹。

153188.png

就像标题所示,我们真的只用了10行(其实是11行,凑个整:)完成了这个“病毒”。我们可以发现usb中的目录,在插入半分钟后全部躺在了home目录下了。

如何选择性的复制文件?

刚刚我们写了一个很简易的脚本测试了一下这个想法的可行性,但是还是有问题。

刚才之所以能把U盘中所有文件很快复制进去,是因为U盘中只有两三个文件,大小不超过15M。

如果目标U盘中有很多电影,音乐,这些我们并不需要的文件,我们的程序就应该能跳过它们,仅仅选择一些重要的比如.docx比如.ppt文件,或者仅仅复制最近修改过的那些文件,或者排除所有大小大于5M的文件。我们可以用python做到吗?当然!

os.walk递归文件夹中所有文件

我在某目录下创建了testwalk文件夹,里面有file123.txt三个文件,folder123三个文件夹,其中folder1中有文件file4.txt以及folder4

153189.png

现在我们来测试一下

153190.png

root存放的是当前位置,它会把./testwalk/下所有的文件夹作为根目录,往下搜索

153193.png

单独看dirs

153194.png

单独查看files

153195.png

好了,我们现在需要递归usb文件夹,找到所有的file,查看大小,如果小于,比如3M,就拷贝进home,大于就舍去。

shutil模块

153196.png

现在我们拿刚才的文件夹举例子,如果想把file1.txt拷贝到folder2:

153198.png

还有许多使用工具在shutil里面这里就不详述了。

os.path.gersize()判断大小

os.path.getsize(文件名)返回的是一个单位为byte的数值,如果用来查看文件大小,我们则需要手动写一个函数,将其换算成容易阅读的形式。

153199.png

这里我们只要选择文件大小小于3M的即可,3M = 3 * 1024kB = 3 * 1024*1024byte

153200.png

结合shutil.copy2就可以把选定大小的文件复制进我们的目标文件夹了

如何指定文件类型

这里就需要正则表达式来帮助我们了。

正则表达式内容很多,《python核心编程》中用了整整一章来讲,所以我们也不深入了。下面是官方文档,感兴趣的可以看一下。

https://docs.python.org/2/library/re.html

如下,我们让指定文件后缀以及指定文件大小可以复制进我们的目标文件:

别忘了导入re

153201.png

用更加复杂的正则表达式可以更好地指定文件类型

根据修改时间筛选文件

153203.png

这时候我在目录下创建了一个文件叫做newfile

153204.png

总之,对每一个文件进行修改时间的筛选可以只复制那些近期,或者特定时期修改或者添加过的文件,这个功能在特定情况下很有用。

关于python实现usb自动拷贝程序的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

young people can also be a leader

2019独角兽企业重金招聘Python工程师标准>>> The leaders or directors of organizations are often older people. But some people say that young people can also be a leader. To what extent do you agree or disagree? In my view , young people can also …

BZOJ 2004 公交线路(状压DP+矩阵快速幂)

注意到每个路线相邻车站的距离不超过K&#xff0c;也就是说我们可以对连续K个车站的状态进行状压。 然后状压DP一下&#xff0c;用矩阵快速幂加速运算即可。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm>#define…

python爬取网易云歌单_详解python selenium 爬取网易云音乐歌单名

目标网站&#xff1a;首先获取第一页的数据&#xff0c;这里关键要切换到iframe里打印一下获取剩下的页数&#xff0c;这里在点击下一页之前需要设置一个延迟&#xff0c;不然会报错。结果&#xff1a;一共37页&#xff0c;爬取完毕后关闭浏览器 完整代码&#xff1a; url htt…

Idea的一些调试技巧及设置todo

程序员的工作内容&#xff0c;除了大部分时间写代码之外&#xff0c;因为有不少的时间是用在调试代码上。甚至说不是在调试代码&#xff0c;就是即将调试代码。 :) 今天我们来谈谈调试代码的一些技巧&#xff0c;在使用IDE提供的debugger时一些快速定位问题的方式。 看到这里的…

安装Node.js和npm

安装Node.js和npm 学习了&#xff1a;http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/00143450141843488beddae2a1044cab5acb5125baf0882000 转载于:https://www.cnblogs.com/stono/p/6891242.html

c++ cstring 转换 char_cstring.h库常用函数

上周&#xff0c;老师讲了大整数的运算方法&#xff0c;我对大数的存储和运算还有些不理解&#xff0c;仔细思考了一下&#xff0c;其实还是训练孩子对机器存储数据的各种掌握和运用吧。不多想&#xff0c;先期孩子虽然一直学习&#xff0c;但是缺乏对知识的系统整理&#xff0…

Django后台管理之商品分类

商品分类 1.建表字段 1.pid&#xff1a;用来绑定父类的 2.path&#xff1a;用来拼接id&#xff0c;保证查询出的数据是按照层级关系展示的2.concat 把表中的两个字段拼接成一个新的字段&#xff0c;通过as重新命名3.查询语句 1.按照第二步拼接成新的字段的名字进行排序查询…

PMT_Stream数据结构

0123 012345670123456701234567012345671stream_type reserved_1elementary_PIDreserved_2ES_info_length 2ES_info_length …(描述信息)3…(描述信息)4crc32 1 节目号 stream_type 8指示了PID为elementary_PID的PES分组中原始流的类型&#xf…

Maven:基本使用

为什么80%的码农都做不了架构师&#xff1f;>>> 1.项目管理工具&#xff1a; Maven的repository&#xff0c;说白了就是dependency的仓库&#xff0c;它按照一定的规则将dependency存放起来&#xff0c;以作缓存&#xff0c;如果本机的 repository找不到某个depen…

UVA 11383 - Golden Tiger Claw(二分图完美匹配扩展)

UVA 11383 - Golden Tiger Claw 题目链接 题意&#xff1a;给定每列和每行的和&#xff0c;给定一个矩阵&#xff0c;要求每一个格子(x, y)的值小于row(i) col(j)&#xff0c;求一种方案&#xff0c;而且全部行列之和的和最小 思路&#xff1a;A二分图完美匹配的扩展&#xff…

浅谈web开发以及django的安装和入门

浅谈web开发 1.B/S和C/S结构 B/S:浏览器与服务器进行的交互模式&#xff08;不需要官方下载的&#xff0c;一夫多妻制&#xff09; C/S:客户机与服务器进项的交互模式&#xff08;必须官方下载的&#xff0c;一夫一妻制2.MVC和MVT MVC: M:模型层&#xff08;Model&#xff0…

大数据可视化html模板开源_大数据时代-可视化数据分析平台必不可少

公众号&#xff1a;不安分的猿人一、项目简介DataGear是一款数据管理与可视化分析平台&#xff0c;使用Java语言开发&#xff0c;采用浏览器/服务器架构&#xff0c;支持多种数据库&#xff0c; 主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管…

java输出一些内容到日志文件

在eclipse中新建一个项目&#xff0c;在src下新建一个log4j.properties文件&#xff0c;文件内容为下&#xff1a;log4j.rootLogger debug,stdout,D,Elog4j.appender.E org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File E://logs/error.log log4j.appender.E…

PMT_Header-节目映射表的数据结构2

1 标志位 table_id8固定为0x02 &#xff0c;标志是该表是PAT2段语法标志位section_syntax_indicator 1段语法标志位&#xff0c;固定为13 zero104保留字reserved_12保留字5有用的字节数section_length 12表示这个字节后面有用的字节数&#x…

Django中的Model模型

Model模型 模型是你的数据的唯一的、权威的信息源。它包含你所储存数据的必要字段和行为。 通常&#xff0c;每个模型对应数据库中唯一的一张表。 每个模型都是django.db.models.Model的一个Python 子类。模型的每个属性都表示为数据库中的一个字段。Django 提供一套自动生成的…

python有多少种模块_python如何查看有哪些模块

Question: 如何查看正则表达式模块re及其相关函数的意义 1、终端命令行下 python >> import sys >> sys.modules ################################### 一长串信息中字段modules对应的模块即为包含的模块。 ################################### >> import r…

浅谈面向对象的javascript几个特性

javascript中的this和new javascript是一门很灵活的语言&#xff0c;尤其是function。他即可以以面向过程的方式来用&#xff0c;比如&#xff1a; function getName() {return 张三 } getName() 也可以以面向对象的方式来用&#xff0c;比如&#xff1a; function User() {th…

【Netty】ChannelHandler和ChannelPipeline

一、前言 前面学习了Netty的ByteBuf&#xff0c;接着学习ChannelHandler和ChannelPipeline。 二、ChannelHandler和ChannelPipeline 2.1 ChannelHandler 在ChannelPipeline中&#xff0c;ChannelHandler可以被链在一起处理用户逻辑。 1. Channel生命周期 Channel接口定义了一个…

TS流头部的调整字段

见 http://hi.baidu.com/xumingxsh/blog/item/7b178903f1fa98014afb512f.html http://hi.baidu.com/xumingxsh/blog/item/ba50dba320a10da3caefd02f.html