【发布时间】:2012-12-19 15:57:49
【问题描述】:
我的搜索和销毁型程序以徒劳无功而告终。我已成功编排列表,但程序在PermissionError 终止。
我的代码如下:
import os
count=0
while(count<4):
file_list=[]
for root, dirs, files in os.walk(os.path.expandvars('%windir%')):
for f_name in files:
if f_name=='infected-file-1':
file_list.append(root+"\\"+f_name)
str1='\n'.join(file_list)
for x in str1.split('\n'): pass
os.remove(x)
continue
for root, dirs, files in os.walk(os.path.expandvars('%windir%')):
for f_name in files:
if f_name=='infected-file-2':
file_list.append(root+"\\"+f_name)
str1='\n'.join(file_list)
for z in str1.split('\n'): pass
os.remove(z)
程序启动良好,但由于权限错误无法删除文件
所以我打算使用 os.system 来使用 takeown 来获得完全控制,但是我如何在语法中使用它,即os.system("takeown /f x") where 'x'=python variable
您可能会建议我使用打印 file_list 来获取文件的地址,然后使用 takeown 但这不是我想要的。 [我的程序没有包含用户交互]
while 命令用于重复该过程以确保文件不再存在!
【问题讨论】:
-
我不明白为什么你先
append,然后是join,然后循环split,但对循环变量什么也不做。看起来唯一的一点是将z设置为file_list的最后一个条目,但z = file_list[-1]应该这样做。我错过了什么? -
@DSM:其实append是用来打印要删除的文件的;使用 join 是因为我之前遇到了一个我现在不记得的错误。我是 Python 的初学者,所以我害怕在那里编辑该代码。但你确实给了我一点。我会调查一下谢谢:)
标签: python file-io python-3.x