0

我正在开发一个搜索和销毁类型的程序,我需要它来搜索具有特定文件名的所有目录并将它们附加到列表中。之后删除所有这些文件...不是列表或列表中的对象...

    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)

我可以写到附加部分代码,但我不知道下一步......

请帮忙

4

2 回答 2

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)
于 2012-12-05T10:43:27.197 回答
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)
于 2012-12-07T12:24:04.420 回答