Как использовать 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'])
Другие вопросы по тегам