前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >把这个灭霸关进电脑里!一键随机消灭硬盘的一半文件!

把这个灭霸关进电脑里!一键随机消灭硬盘的一半文件!

作者头像
AiTechYun
发布2019-05-13 16:35:57
1.2K0
发布2019-05-13 16:35:57
举报
文章被收录于专栏:ATYUN订阅号ATYUN订阅号

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

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

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

于是我用 Python 实现了这个脚本,并打包成了 exe 程序分享给大家。(后台回复“灭霸“获取下载链接。

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

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

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

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

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

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


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

其实我们的真正目的是为了实战 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() 则是将文件移入回收站。

代码语言:javascript
复制
import os
import random
import 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('===程序退出===')

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

代码语言:javascript
复制
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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-04-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ATYUN订阅号 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档