阅读文本大概需要 6 分钟。

Python 这门语言有非常多有趣的内容,比如给微信好友自动发消息、查看微信好友撤回的消息、通过微信控制电脑等等。在我公众号上也分享过很多有趣的程序,近期我会去搜集一些骚操作的 Python 程序分享给大家,并命名「Python 骚操作」专栏,持续更新!文中一些程序可能来自别人的文章,但如果我觉得程序还有所改进的地方,我会继续添加一些代码,并且我会在文末标注原程序出处。

今天的「Python 骚操作」,分享的是一个自动拷贝电脑 U 盘内容的程序。当别人的 U 盘插入到你的电脑上时,Python 脚本会自动把 U 盘所有的内容,全部拷贝到你的电脑上。脚本每隔 5 秒扫描当前电脑是否有 U 盘插入,如果是已拷贝过的内容,则不会重复拷贝,每个相应的操作都会记录到日志文件中。

如果恰好这个 U 盘里有某些室友的「学习视频」,比如下的图片。

那骚气指数 10 颗星!

注意此程序只是用来学习交流,切勿违法使用。

Python 骚思路

在 windows 系统中,当有 U 盘插入到你的电脑上时,会给它分配一个磁盘名称,比如在我的电脑上分配的是「J」。所以我会先定义一个「USB_FILE」变量,表示 U 盘所在的目录。

我们利用 os 库来判断当前系统是否有「USB_FILE」,如果扫描到当前系统有这个目录,说明有 U 盘插入到当前电脑上。随后我们通过 shutil 库,把 U 盘里的内容全部拷贝到自己的电脑上。在每个操作之间我添加了 input_log() 方法,用来把当前相应的操作记录到日志文件中。

Python 骚源码

程序主要是由三个函数组成,get_dirs_size()、main()、input_log()。

get_dirs_size()

get_dirs_size() 主要是返回要拷贝 U 盘的长度,用来判断当前要拷贝的内容是否已经重复,如果重复则无需重新拷贝。

def get_dirs_size(dir):

size = 0

for root, dirs, files in os.walk(dir):

size += sum([getsize(join(root, name)) for name in files])

print(size)

return size

main()

main() 用来执行主逻辑代码,即每隔 5 秒检查当前电脑是否有 U 盘插入。如果检查到,则记录当前 U 盘的长度。在下一次检测的时候,如果当前的长度没有发生变化,则无需重新拷贝。每个操作都会记录到日志中,以便日后查看相应的拷贝信息。

def main():

old_size = 0

new_dirsize = 0

while(1):

if os.path.exists(USB_PATH):

print("检测到 U 盘")

input_log("检测到 U 盘")

new_dirsize = get_dirs_size(USB_PATH)

if old_size != new_dirsize:

for filename in os.listdir(USB_PATH):

print("拷贝了:" + filename)

input_log("拷贝了:" + filename)

shutil.copytree(USB_PATH, SAVE_PATH)

old_size = new_dirsize

else:

print("U 盘没有变化")

input_log("U 盘没有变化")

else:

print("暂时没有 U 判断")

print("开始休眠")

input_log("开始休眠")

sleep(5)

print("休眠结束,重新检测")

input_log("休眠结束,重新检测")

input_log() 利用 logging 库,来把相应的操作信息保存到一个日志文件中。

def input_log(message):

handler = logging.handlers.RotatingFileHandler(LOG_FILE, maxBytes=1024 * 1024, backupCount=5,

encoding='utf-8')  # 实例化handler

fmt = '%(asctime)s - %(levelname)s - %(message)s'

formatter = logging.Formatter(fmt)  # 实例化formatter

handler.setFormatter(formatter)  # 为handler添加formatter

logger = logging.getLogger('tst')  # 获取名为tst的logger

logger.addHandler(handler)  # 为logger添加handler

logger.setLevel(logging.DEBUG)

logger.info(message)

Python 骚教程

此次的程序使用非常简单,首先下载源码,后台回复「拷贝」即可获取源码。然后修改下 USB_PATH 和 SAVE_PATH,这两个参数表示的是你 U 盘所属的位置和你想要保存的目录。

LOG_FILE = "test.log"

USB_PATH = "J:\\"

SAVE_PATH = "D:\\disk_copy"

原程序参考来源:

本文首发于公众号「痴海」,后台回复「1024」即可获取最新编程资源。

python程序怎么保存到u盘_Python 骚操作,自动拷贝U盘相关推荐

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

    python实现usb自动拷贝程序的方法 发布时间:2020-06-28 09:07:05 来源:亿速云 阅读:135 作者:清晨 这篇文章将为大家详细讲解有关python实现usb自动拷贝程序的方法 ...

  2. python 将图片转换成像素画_Python 骚操作之图片转字符画

    今天给大家介绍一个 Python 的骚操作,将图片转化为字符画,又是一个装逼的好技巧,大家赶紧 get 一下吧! 实现原理: 字符画是一系列字符的组合,我们可以把字符看作是比较大块的像素,一个字符能表 ...

  3. python 死循环程序能占满cpu吗_运行tensorflow python程序,限制对GPU和CPU的占用操作...

    一般情况下,运行tensorflow时,默认会占用可以看见的所有GPU,那么就会导致其它用户或程序无GPU可用,那么就需要限制程序对GPU的占用.并且,一般我们的程序也用不了所有的GPU资源,只是强行 ...

  4. python程序打包成安卓app教程_Python zipapp打包教程(超级详细)

    经过复杂的开发.调试之后,终于得到一个 Python 程序,这个程序或许精巧,或许有些古拙,但它是我们心血的结晶,我们当然希望将这个程序发布出来. Python 提供了一个 zipapp 模块,通过该 ...

  5. python程序语言的提示符是什么_Python基础之语言简介

    python是什么 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言,其设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特 ...

  6. 无法支持python程序的编辑运行和调试_python程序的调试方法

    本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python def debug_demo(val): if ...

  7. python程序设计基础第二版pdf下载_Python程序设计基础董付国课后答案-Python程序设计基础第二版清华大学出版社PDF电子版完整高清版-精品下载...

    Python程序设计基础(第2版)完全面向Python 3.x,全部案例代码使用Python 3.5.x和Python 3.6.x编写,大部分内容也同样适用于Python 3.4.x.本书对Pytho ...

  8. 怎么把python程序安装到别人电脑上_Python项目实战,如何用微信远程控制别人电脑,抓紧时间收藏...

    今天带给大家一个非常有意思的 Python程序,基于 itchat 实现微信控制电脑.你可以通过在微信发送命令,来拍摄当前电脑的使用者,然后图片会发送到你的微信上.甚至你可以发送命令来远程关闭电脑. ...

  9. pythonurllib微博登录怎么删_Python骚操作之删微博还需用手动吗?Python去做就好了!...

    原标题:Python骚操作之删微博还需用手动吗?Python去做就好了! 导语 利用Python来自动删除微博说说! 最近被被「新浪微勃」恶心到了,事件详情请见 王思聪杀死微博 ,决定删除所有微博动态 ...

最新文章

  1. 《星际争霸2》引擎技术解析
  2. Java Review - 并发编程_前置知识二
  3. Java时间日期格式转换
  4. 【机器学习】最近邻算法KNN原理、流程框图、代码实现及优缺点
  5. leetcode 58. 最后一个单词的长度(C语言)
  6. 在PS中如何进行图文互排,且层的使用……
  7. 从头搭建drbd+openfiler+corosync (二)
  8. pid调节软件_三面大疆惨败,因为不懂PID的积分抗饱和
  9. Git学习的简单笔记
  10. 大学生圣诞网页设计制作成品 圣诞节静态HTML网页作业作品 简单DIV CSS布局网站
  11. Shell脚本:Linux Shell脚本学习指南(超详细)
  12. CSND如何转载别人的文章
  13. Tuxera NTFS2023Mac读写ntfs磁盘工具
  14. Vue基础语法之计算属性
  15. C语言Case语后是字符串,c语言中的switch case语句
  16. js鼠标经过切换图片
  17. java8使用Comparator.comparing进行排序
  18. 佩尔方程及其在一类二元二次丢番图方程的推广
  19. Dojo 1.6 官方教程:Dojo中的事件
  20. 有实力的APP开发公司应该具备哪些优势?

热门文章

  1. 华为手环8和华为手环7的区别
  2. VR 双相机渲染解决只有单相机看到物体
  3. 用python画星空壁纸-3分钟教你用python把你的桌面壁纸变得酷起来
  4. Java中Excel表格数据的导入和导出步骤和方法
  5. Python怎么用大数据分析_用Python制作大数据教程/如何使用Python分析大数据
  6. 【Simulator IOS虚拟机】IOS虚拟机设置中文输入
  7. Quartz的oracle建表语句
  8. 二叉堆------小根堆
  9. Wireshark数据包分析(详细解析)
  10. qt 新窗口show后马上关闭_qt学习(四)主窗选钮,显示新窗口。