如何将 nameFilters 与 QDirIterator 一起使用?

How to use nameFilters with 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.

的文件

nameFilters 参数不是关键字参数。

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

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

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