내 검색 및 파괴 유형 프로그램이 헛되지 않았습니다. 나는 성공적으로 목록을 만들었지 만 프로그램은 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을 사용할 계획되었다 권한 오류 그래서
이있는 한 완전한 제어권을 얻으려면 어떻게해야합니까? 예 : os.system("takeown /f x")
여기서 'x'= 파이썬 변수
file_list
인쇄물을 사용하여 takeown을 사용하고 takeown을 사용하는 것이 좋습니다.하지만 그렇지는 않습니다. 내가 원하는거야. [내 프로그램에 사용자 상호 작용을 포함시키지 마십시오]
while 명령은 파일이 더 이상 존재하지 않도록 프로세스를 반복하는 데 사용됩니다! 난 그냥 파일에 대한 액세스를 얻기 위해이 코드 os.system("cmd /c takeown /f "+x)
를 배치
) 후 삭제 성공, P가 걸린 모든 일부 평화의 마음을했다 :
나는 왜'append'를하고,'join'을하고,'split'을 반복하지만 루프 변수는 아무것도하지 않는다는 것을 이해하지 못합니다. 유일한 포인트는'file_list'의 마지막 엔트리에'z'를 설정하는 것이지만,'z = file_list [-1]'은 똑같이해야합니다. 내가 뭘 놓치고 있니? – DSM
@DSM : 실제로는 append를 사용하여 삭제할 파일을 인쇄합니다. 이전에 내가 기억할 수없는 오류가 발생하여 조인이 사용되었습니다. 저는 파이썬에서 초보자입니다. 그래서 그 코드를 편집하는 것이 두렵습니다. 하지만 당신은 나에게 요점을주지. 나는 그것을 들여다 볼 것이다 :) –