如何在QDirIterator中使用nameFilters?

时间:2016-09-10 19:24:26

标签: python iterator pyside qdir

在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 个答案:

答案 0 :(得分:1)

nameFilters参数不是关键字参数。

不幸的是,如果传递不存在的关键字参数,PySide永远不会引发错误,这是一个非常糟糕的设计。当给出无效输入时,API不应该以静默方式失败。

无论如何,如果使用位置参数,您的代码将正常工作:

it = QtCore.QDirIterator('.', ['*.py'])