반복 할 여러 확장명을 가진 파일 목록을 만들려고합니다. 스택 오버플로에 대한 답변의 대부분은 람다를 사용하여 필터링하는 것이지만이 경우 어떻게 작동하는지 잘 모르겠습니다 (반복이 설정되는 방식 때문). 지금까지 나는 분명히 문제가 list.remove가 첫 번째 인스턴스 만이 아니라 모든 인스턴스를 제거한다는 것입니다Python : 필터를 사용하는 목록에서 여러 값을 제거하는 경우
import fnmatch
excluded = ['*.py', '*.py~']
fileNames = []
for fileName in os.listdir('.'):
fileNames.append(fileName)
print fileNames
for p in excluded:
if fnmatch.fnmatch(fileName, p):
fileNames.remove(fileName)
print fileNames
있습니다. 이 문제를 해결하는 가장 효율적인 방법은 무엇이라고 생각하십니까?
감사합니다.
를 사용
또는 inden을 의미하지 않았다. 인쇄 문. 그렇지 않으면 무언가를 추가 할 때마다 전체 목록을 다시 인쇄합니다. – Matt