访问lis中的文件

2024-09-30 00:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我的搜索和销毁类型程序以失败告终。我已经成功地建立了列表,但是程序在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)

程序启动正常,但无法删除文件,因为存在权限错误

所以我打算用操作系统使用takeown获得完全控制,但是如何在语法中使用它,即os.system("takeown /f x")其中'x'=python变量

您可以建议我使用print the file_list获取文件的地址,然后使用takeown,但这不是我想要的。[我不希望我的程序包含用户交互]

while命令用于重复该过程,以确保文件不再存在!你知道吗


Tags: 文件namein程序foroscountroot
2条回答

您真的应该使用^{} module而不是os.system

import subprocess

subprocess.call(['takeown', '/f', x])

^{} function的第一个参数是命令参数列表,包括命令本身。只需使用变量x作为该列表的元素。你知道吗

我已经找到了解决办法:p所需要的只是心灵的平静;)

我刚刚放置了这个代码os.system("cmd /c takeown /f "+x)以获得对文件的访问权,然后删除成功。你知道吗

作为一个新手,这是一个成就

谢谢你,谢谢

相关问题 更多 >

    热门问题