突发奇想的THANOS程序
随机删除脚本
这几天看了复仇者联盟4,忽然有点想写一个灭霸程序,双击打开输入路径后一半的文件灰飞烟灭。
具体实现代码如下:
import os
import random
import shutil
def thanos(dir_path):
files = os.listdir(dir_path) # 列出目录下文件
sample = random.sample(files, len(files) // 2) # 随机选取k个元素组成新的列表
for item in sample:
file_path = os.path.join(dir_path,item)
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__":
path = input("please input file path:")
if(path == ''):
path = os.getcwd() # 获取目录
thanos(path)
顺便比较一下这几种删除函数
os.remove(),os.unlink(),os.removedirs(),shutil.rmtree()这几个函数都有删除的功能,区别如下:
- os.remove()和os.unlink()这两个函数功能是一样的,都是删除一个文件。
- os.removedirs()是递归删除空文件夹,即先删除子目录再尝试删除父目录,如果目录是空的则进行删除操作。
- shutil.rmtree()表示递归删除文件夹下的所有子文件夹和子文件而不管是否为空。