Как использовать nameFilters с QDirIterator?
В PySide, когда я использую QDirIterator
Как я могу фильтровать файлы по имени?
В документации говорится о параметре nameFilters
:
Но когда я пытаюсь это сделать, он не фильтрует файлы по расширению:
from PySide import QtCore
it = QtCore.QDirIterator('.', nameFilters=['*.py'])
while it.hasNext():
print it.next()
>> ./.
>> ./..
>> my_script.py
>> another_file.txt
С этим кодом я ожидал получить только файлы с расширением .py
,
1 ответ
Решение
nameFilters
Параметр не является ключевым аргументом.
К сожалению, PySide никогда не вызывает ошибку, если вы передаете несуществующие аргументы с ключевыми словами, что является очень плохим дизайном. API никогда не должны молча проваливаться, если заданы неверные данные.
В любом случае, ваш код будет работать правильно, если вы используете позиционный аргумент:
it = QtCore.QDirIterator('.', ['*.py'])