Python 访问列表中的文件
我的搜索和销毁类型程序以失败告终。我已成功创建列表,但程序在Python 访问列表中的文件,python,file-io,python-3.x,Python,File Io,Python 3.x,我的搜索和销毁类型程序以失败告终。我已成功创建列表,但程序在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
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)
导入操作系统
计数=0
而(count我找到了解决办法:p所需要的只是一点心灵的平静;)
我只是把这个代码os.system(“cmd/c takeown/f”+x)
放在这里以获得对文件的访问权,然后删除成功
作为一名新手,这是一项成就
谢谢STACKOVERFLOW您真的应该使用而不是操作系统
:
import subprocess
subprocess.call(['takeown', '/f', x])
的第一个参数是命令参数列表,包括命令本身。只需使用变量x
作为该列表的一个元素。我对Windows了解不多,但它能正确处理特殊字符吗?虽然这个解决方案似乎有效,我强烈建议您采纳@MartijnPieters给出的建议——从长远来看,这是一种更灵活的方法,而且早早地学习好习惯是值得的:)我不明白您为什么附加,然后加入,然后循环拆分,但不使用循环变量。看起来唯一的一点是将z
设置为file\u list
的最后一个条目,但是z=file\u list[-1]
也应该这样做。我遗漏了什么?@DSM:其实append是用来打印要删除的文件的;使用join是因为我之前遇到了一个我现在记不起来的错误。我是Python的初学者,所以我害怕编辑那里的代码。但你确实给了我一个要点。我会调查的谢谢:)