2012-12-05 2 views
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) 

내가 코드의 일부를 추가로 쓸 수도 있지만 다음에 모르는 ...

도움을 청하십시오.

답변

1

컴퓨터에서 파일을 제거하려면 os.remove()을 사용하십시오.

for file in file_list: 
    os.remove(file) 
+0

더 명확히 할 수 있습니까? 나는 이해하지 못했다 –

+0

나는 그것을 조금 편집했다, 이것은 당신을 위해 충분해야한다. –

+0

전체 경로는'file_list'에 삽입 될 때 추가되어야합니다. 나중에 결정할 수는 없습니다. – pepr

0
: 방금 전화는 파일 그것의로 매개 변수 전체 경로를 사용하므로 대신 os.remove("infectedFile.dll")를 호출하면 다음 그래서 file_list이 파일을 전체 경로를 포함해야 os.remove("C:/program files/avira/infectedFile.dll")

를 호출 것

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) 
+0

downvoted 사람 ... 당신이 당신의 이의를 설명 할 수 있습니까? :) – pepr

+0

나를 downvoting 아니었지만 정확히 내 답변에 추가합니까? –

+0

@Mahi : 당신에게 downvoted 말하지 않았고, 나는 그것도 기대하지 않았다. Surya Teja Karra는 초보자 일 것입니다. 내 대답은 언급 한 전체 경로를 추가하는 방법을 보여줍니다. 걷는 동안 '루트'가 바뀝니다. 이 방법은 항목을 목록에 삽입 할 때 추가해야합니다. 이것은 당신의 대답이 보여주지 않는 것입니다. – pepr

관련 문제