带你用Python编写灭霸脚本!一键随机消灭硬盘的一半文件!

640?wx_fmt=jpeg


作者 | 段晓晨 

来源 | 不二小段(ID:rose-fun)


复联 4 已经上映了,不知道小伙伴们都有没有买首映的电影票啊,随着复联的热度增加,各种各样的段子层出不清,我今天就在网上看到这么一个段子:

如果你觉得电脑空间不够用了,不妨试试 Thanos.sh(灭霸脚本),只需一行命令,它就会随机删除硬盘上的一半文件, 且无法恢复 。如果你是乐于助人的灭霸本霸,建议在好友的电脑上使用,记得提前买好人身意外险哦。


看到这个段子以后很多人一笑而过,我却觉得很有现实意义啊,比如我们电脑里自己下不去手的某些学习资料文件夹,平时由于强迫症不知道删除哪些内容,就很适合用这种方式清理一下嘛。


于是我用 Python 实现了这个脚本,并打包成了 exe 程序分享给大家。

灭霸程序链接: 

https://pan.baidu.com/s/17fxw4GFNo4v0WKqhG5h2jA 提取码: xs3g


程序使用起来也十分危险简单:


1、下载 exe 程序,移动到你需要清理的文件夹下(请不要放在盘符根目录!!!)。程序分两种,一是 Thanos.exe,直接彻底删除文件和文件夹,不可恢复!二是 Merciful_Thanos.exe,将文件或文件夹移至回收站,给你多一次考虑的机会。


2、运行程序,会提示你输入需要清理的文件夹路径,如果是清理程序所在的文件夹的话,可以直接回车确定。注意如果要自行输入路径的话,分隔符要用 \ 而非 / 。


3、为了避免误操作,程序会再次提示你确认,输入 y 或者 yes 后回车。


4、灭霸程序会随机删除文件夹下一半的文件/文件夹。


带你用Python编写灭霸脚本!一键随机消灭硬盘的一半文件!_第1张图片


是不是十分的简单有效啊。


接下来是代码实现的部分。


其实我们的真正目的是为了实战 Python,那这个脚本中用到的知识主要是随机模块和文件操作。Python 有很多用于文件处理的内置模块和函数。这些函数来自很多不同的库,比如 os,os.path,shutil 和 pathlib,以后我们接触到了再详细介绍。


这次的代码逻辑十分简单,一共分为三步:


1、使用 os.listdir() 方法获取指定目录下的文件及文件夹列表;

2、使用 random.sample() 方法从文件列表中获取指定个数的子列表;

3、使用 os.remove()、shutil.rmtree() 及 send2trash.send2trash() 方法遍历删除列表中的文件,区别在于,os.remove()、shutil.rmtree() 会直接彻底删除文件,而send2trash.send2trash() 则是将文件移入回收站。

import osimport randomimport shutil

def thanos(dir_path): files = os.listdir(dir_path) sample = random.sample(files, len(files) // 2) for each in sample: file_path = os.path.join(dir_path, each) try: if os.path.isfile(file_path): os.remove(file_path) elif os.path.isdir(file_path): shutil.rmtree(file_path) except PermissionError as e: pass

if __name__ == '__main__': print('=== 灭霸清理程序 V1.0 ===') print('====== Author:不二小段 ======') path = input('请输入你要清理的文件目录,如需清理当前目录,请直接按回车:') if path == '': path = os.getcwd() flag = input('请输入y或yes确认操作:') if flag == 'y' or 'yes': print('===灭霸程序启动===') thanos(path) print('===灭霸程序已执行完毕===') input('===请关闭程序===') else: input('===程序退出===')


如果想要制作慈悲版灭霸脚本(删除时放入回收站),则需要更改删除文件时用到的方法:


 
   

import send2trash
def thanos(dir_path): files = os.listdir(dir_path) sample = random.sample(files, len(files) // 2) print(sample) for each in sample: file_path = os.path.join(dir_path, each) try: send2trash.send2trash(file_path) except OSError as e:            pass


常见问题:


Q:程序是否安全?


A:不安全。这是一个自动删除文件的程序!!!虽然我设置了两步确认,但是请抱着娱乐态度在测试文件夹中使用。请勿恶意在他人电脑上使用!!!如因恶意使用导致文件受损,与原作者无关。


Q:是否会发生“我 灭 我 自 己”的情况?


A:分情况。如果是通过运行 py 源码的方式,py 文件源码有可能被随机删除,即“我灭我自己”;如果是通过 exe 程序执行,则无法删除正在占用的程序,会抛出拒绝访问的错误,所以需要添加异常处理。


Q:杀毒软件拦截?


A:因为涉及到删除文件的操作,部分杀毒软件、管家会进行拦截确认。exe 程序为源码打包而来,如果不放心的话,请自己审计 py 源码后使用。


Q:我可否在此基础上进行修改、传播、分发?


A:源代码与程序使用 CC license,可以任意修改、分发。如果您愿意的话,我还是希望能保留原作者信息,或是我的公众号二维码进行传播。


再次声明,该程序仅供娱乐,主要目的是学习 Python 的文件操作,请勿恶意使用!


据说你每点击一个好看

就会有一个平行时空的灭霸被超级英雄击败


(*本文仅代表作者观点,转载请联系原作者)


CTA核心技术及应用峰会

5月25-27日,由中国IT社区CSDN与数字经济人才发展中心联合主办的第一届CTA核心技术及应用峰会将在杭州国际博览中心隆重召开,峰会将围绕人工智能领域,邀请技术领航者,与开发者共同探讨机器学习和知识图谱的前沿研究及应用。


更多重磅嘉宾请识别海报二维码查看,目前会议早鸟票发售中(原票价1099元),点击阅读原文即刻抢购


带你用Python编写灭霸脚本!一键随机消灭硬盘的一半文件!_第2张图片

你可能感兴趣的:(带你用Python编写灭霸脚本!一键随机消灭硬盘的一半文件!)