- class QDirIterator#
The
QDirIterator
class provides an iterator for directory entrylists. More…Synopsis#
Methods#
def
__init__()
def
fileInfo()
def
fileName()
def
filePath()
def
hasNext()
def
next()
def
nextFileInfo()
def
path()
Note
This documentation may contain snippets that were automatically translated from C++ to Python. We always welcome contributions to the snippet translation. If you see an issue with the translation, you can also let us know by creating a ticket on https:/bugreports.qt.io/projects/PYSIDE
Detailed Description#
Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
You can use
QDirIterator
to navigate entries of a directory one at a time. It is similar toentryList()
andentryInfoList()
, but because it lists entries one at a time instead of all at once, it scales better and is more suitable for large directories. It also supports listing directory contents recursively, and following symbolic links. UnlikeentryList()
,QDirIterator
does not support sorting.The
QDirIterator
constructor takes aQDir
or a directory as argument. After construction, the iterator is located before the first directory entry. Here’s how to iterate over all the entries sequentially:it = QDirIterator("/etc", QDirIterator.Subdirectories) while it.hasNext(): dir = it.next() print(dir) # /etc/. # /etc/.. # /etc/X11 # /etc/X11/fs # ...
Here’s how to find and read all files filtered by name, recursively:
it = QDirIterator("/sys", QStringList() << "scaling_cur_freq", QDir.NoFilter, QDirIterator.Subdirectories) while it.hasNext(): f = QFile(it.next()) f.open(QIODevice.ReadOnly) print(f.fileName(), f.readAll().trimmed().toDouble() / 1000, "MHz")
The
next()
andnextFileInfo()
functions advance the iterator and return the path or theQFileInfo
of the next directory entry. You can also callfilePath()
orfileInfo()
to get the current file path orQFileInfo
without first advancing the iterator. ThefileName()
function returns only the name of the file, similar to howentryList()
works.Unlike Qt’s container iterators,
QDirIterator
is uni-directional (i.e., you cannot iterate directories in reverse order) and does not allow random access.See also
- class IteratorFlag#
(inherits
enum.Flag
) This enum describes flags that you can combine to configure the behavior ofQDirIterator
.Constant
Description
QDirIterator.NoIteratorFlags
The default value, representing no flags. The iterator will return entries for the assigned path.
QDirIterator.Subdirectories
List entries inside all subdirectories as well.
QDirIterator.FollowSymlinks
When combined with Subdirectories, this flag enables iterating through all subdirectories of the assigned path, following all symbolic links. Symbolic link loops (e.g., “link” => “.” or “link” => “..”) are automatically detected and ignored.
- __init__(dir[, flags=QDirIterator.IteratorFlag.NoIteratorFlags])#
- Parameters:
dir –
QDir
flags – Combination of
IteratorFlag
Constructs a
QDirIterator
that can iterate overdir
's entrylist, usingdir
's name filters and regular filters. You can pass options viaflags
to decide how the directory should be iterated.By default,
flags
isNoIteratorFlags
, which provides the same behavior as inentryList()
.The sorting in
dir
is ignored.Note
To list symlinks that point to non existing files,
System
must be passed to the flags.- __init__(path, filter[, flags=QDirIterator.IteratorFlag.NoIteratorFlags])
- Parameters:
path – str
filter – Combination of
Filter
flags – Combination of
IteratorFlag
Constructs a
QDirIterator
that can iterate overpath
, with no name filtering andfilters
for entry filtering. You can pass options viaflags
to decide how the directory should be iterated.By default,
filters
isNoFilter
, andflags
isNoIteratorFlags
, which provides the same behavior as inentryList()
.Note
To list symlinks that point to non existing files,
System
must be passed to the flags.- __init__(path[, flags=QDirIterator.IteratorFlag.NoIteratorFlags])
- Parameters:
path – str
flags – Combination of
IteratorFlag
Constructs a
QDirIterator
that can iterate overpath
. You can pass options viaflags
to decide how the directory should be iterated.By default,
flags
isNoIteratorFlags
, which provides the same behavior as inentryList()
.Note
To list symlinks that point to non existing files,
System
must be passed to the flags.- __init__(path, nameFilters[, filters=QDir.NoFilter[, flags=QDirIterator.IteratorFlag.NoIteratorFlags]])
- Parameters:
path – str
nameFilters – list of strings
filters – Combination of
Filter
flags – Combination of
IteratorFlag
Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
Constructs a
QDirIterator
that can iterate overpath
, usingnameFilters
andfilters
. You can pass options viaflags
to decide how the directory should be iterated.By default,
flags
isNoIteratorFlags
, which provides the same behavior asentryList()
.For example, the following iterator could be used to iterate over audio files:
def audioFileIt(audioPath,{"*.mp3","*.wav"},QDir.Files):
Note
To list symlinks that point to non existing files,
System
must be passed to the flags.See also
hasNext()
next()
IteratorFlags
setNameFilters()
Returns a
QFileInfo
for the current directory entry.See also
- fileName()#
- Return type:
str
Returns the file name for the current directory entry, without the path prepended.
This function is convenient when iterating a single directory. When using the
Subdirectories
flag, you can usefilePath()
to get the full path.See also
- filePath()#
- Return type:
str
Returns the full file path for the current directory entry.
See also
- hasNext()#
- Return type:
bool
Returns
true
if there is at least one more entry in the directory; otherwise, false is returned.See also
- next()#
- Return type:
str
Advances the iterator to the next entry, and returns the file path of this new entry. If
hasNext()
returnsfalse
, this function does nothing, and returns an emptyQString
.You can call
fileName()
orfilePath()
to get the current entry’s file name or path, orfileInfo()
to get aQFileInfo
for the current entry.Call
nextFileInfo()
instead of next() if you’re interested in theQFileInfo
.Advances the iterator to the next entry, and returns the file info of this new entry. If
hasNext()
returnsfalse
, this function does nothing, and returns an emptyQFileInfo
.You can call
fileName()
orfilePath()
to get the current entry’s file name or path, orfileInfo()
to get aQFileInfo
for the current entry.Call
next()
instead of nextFileInfo() when all you need is thefilePath()
.See also
- path()#
- Return type:
str
Returns the base directory of the iterator.