Я пытаюсь получить все файлы с определенным расширением, кроме тех, которые соответствуют некоторым условиям.< /p>
Вот исходный код:
Код: Выделить всё
def test_print_numTXTs(fileList):
counter = 0
for file in fileList:
if file.name[-4:] == ".txt":
counter +=1
if file.name == "a.txt":
fileList.remove(file) #problem caused here
print(counter)
print(len(fileList))
Следующий код «работает», но выглядит как хак: я добавляю файлы, которые хочу удалить из списка, во второй список, а затем повторяю его после факт. Я закомментировал исходную строку, что привело к «пропуску» итераций.
Код: Выделить всё
def print_numTXTs(fileList):
filesToRemoveFromList = []
counter = 0
for file in fileList:
if file.name[-4:] == ".txt":
counter +=1
if file.name == "a.txt":
#fileList.remove(file) #problem caused here
filesToRemoveFromList.append(file)
print(counter)
for file in filesToRemoveFromList:
fileList.remove(file)
print(len(fileList))
Есть ли более элегантное решение этой проблемы?
Подробнее здесь: https://stackoverflow.com/questions/672 ... ipping-fut