0
에서 동시에 여러 파일 확장자를 삭제할 수 있습니다 (예를 들어, 패턴 = ('가 .txt'또는 '이 .doc') 여러 확장 기능을 추가 할 수있는 방법이 있나요내가 파이썬
import os, fnmatch
def find_files(directory, pattern):
for root, dirs, files in os.walk(directory):
for basename in files:
if fnmatch.fnmatch(basename, pattern):
filename = os.path.join(root, basename)
yield filename
def find_files_to_list(directory, pattern):
wanted_files = find_files_to_list('/original_project/', '*.html')
for filename in find_files('/copy_project/', '*'):
if filename not in wanted_files:
os.remove(filename)
file_list = []
for root, dirs, files in os.walk(directory):
for basename in files:
if fnmatch.fnmatch(basename, pattern):
filename = os.path.join(root, basename)
file_list.append(filename)
return file_list
wanted_files = find_files_to_list('/original_project/', '*.html')
for filename in find_files('/copy_project/', '*'):
if filename not in wanted_files:
os.remove(filename)
: 당신 .html로하고 .txt 인 확장을 계속하고 싶어 그래서 만약은 어떤 일치하는 경우
True
를 반환, 당신에 대해 일치 할 것들의 튜플을 받아 '하지만 같은 프로그램에'* .txt '라고 덧붙일 수는 없습니다. 논리는 필요한 파일을 유지하고 나머지는 삭제하는 것입니다. – user2661518좋아, 그래서 논리를 뒤집기 ... – roippi
나는 파일과 폴더의 무리와 디렉토리를 가지고 있기 때문에 나는 할 수 없습니다. 따라서 os.listdir을 사용하면 하위 폴더의 파일은 삭제되지 않습니다. 그리고 os.walk를 사용하면 같은 형식으로 다시 복사 할 수 없습니다. 그래서 내가 원하는 것을 지키고 쉬는 것이 쉬울 거라 생각했지만 위의 문제에 부딪쳤다. – user2661518