我正在开发一个搜索和销毁类型的程序,我需要它做的是搜索具有特定文件名的所有目录并将它们附加到列表中。之后删除所有这些文件......不是列表或列表中的对象......
import os
file_list=[]
for root, dirs, files in os.walk(path-to-dir'):
for f_name in files:
if f_name.startswith("file-name"):
file_list.append(f_name)
我可以写下来添加部分代码,但我接下来不知道......
请帮忙
答案 0 :(得分:1)
要从计算机中删除文件,请使用os.remove()
。它需要文件的完整路径作为参数,因此您可以调用os.remove("infectedFile.dll")
os.remove("C:/program files/avira/infectedFile.dll")
因此,您的file_list
应包含文件的完整路径,然后只需致电:
for file in file_list:
os.remove(file)
答案 1 :(得分:0)
修改您的file_list.append(f_name)
。 f_name
只是一个简单的名字。您需要在处理时添加文件名的路径,因为您不知道在目录层次结构中找到该文件的位置:
file_list.append(os.path.join(root, f_name))
root
变量包含行走期间的路径。
要检查代码是否有效,只需打印列表内容:
print('\n'.join(file_list))
或者你可以在循环中为后期部分做好准备:
for fname in file_list:
print(fname)
然后您只需添加os.remove(fname)
即可删除文件名:
for fname in file_list:
print('removing', fname)
os.remove(fname)