PyQt 中的 os.walk 类似物

2023-12-10

在我可以继续实现递归目录/文件搜索并对某些任务进行一些过滤之前,我想知道 Qt/PyQt 是否有类似的os.walk.

主应用程序是 PyQt4 中的 GUI 应用程序,所有文本字段都在QStrings 和路径对象(文件、目录)使用QFile, QDir, QFileinfo用于操纵。

作为模拟,我的意思是快速方便的递归 fs 树遍历工具。

我应该使用os.walk或者更快、信息更丰富的东西?

附言。或许this可以帮助我,但我不确定这是否比os.walk.


我应该使用 os.walk 还是更快、信息更丰富的东西?

没有,我建议使用os.walk如果可以的话,用Python。它已经尽善尽美了。

不仅仅是因为Qt没有这么方便的方法,而且即使你基于Qt编写自己的机制QDir,您将可以访问所有三个变量,而无需像使用那样手工制作os.walk.

如果你非常想使用 Qt,那么你可以使用下面我自己不久前使用过的遍历函数。

main.cpp

#include <QDir>
#include <QFileInfoList>
#include <QDebug>

void traverse( const QString& dirname )
{
    QDir dir(dirname);
    dir.setFilter(QDir::Dirs | QDir::Files | QDir::NoSymLinks | QDir::NoDot | QDir::NoDotDot);

    foreach (QFileInfo fileInfo, dir.entryInfoList()) {
      if (fileInfo.isDir() && fileInfo.isReadable())
          traverse(fileInfo.absoluteFilePath());
      else
          qDebug() << fileInfo.absoluteFilePath();
    }
}

int main()
{
    traverse("/usr/lib");
    return 0;
}

或者针对大型目录和一般情况简化以下内容,因为它可以更好、更方便地扩展:

#include <QDirIterator>
#include <QDebug>

int main()
{
    QDirIterator it("/etc", QDirIterator::Subdirectories);
    while (it.hasNext())
        qDebug() << it.next();
    return 0;
}

main.pro

TEMPLATE = app
TARGET = qdir-traverse
QT = core
SOURCES += main.cpp

构建并运行

qmake && make && ./qdir-traverse

然后,您将打印所有遍历的文件。您可以开始自定义它,然后进一步满足您的需求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyQt 中的 os.walk 类似物 的相关文章

  • 关于使用Python启动SSH隧道的问题

    我在从用 Python 编写的 HTTP RPC 服务器启动 SSH 隧道时遇到了麻烦 基于Python的BaseHTTPServer 有一个用Python编写的简单的HTTP RPC服务器 作为其中一项服务的一部分 我想启动从 RPC 服
  • 更改 Inkscape 的 Python 解释器

    在使用 Inkscape 时 我不断收到错误 这似乎意味着未满足 python 2 vs 3 的期望 尽管我已经安装了它们 例如 当我尝试从模板生成新文档时 我得到 Traceback most recent call last File
  • 如何配置散景图以具有响应宽度和固定高度

    我使用通过组件功能嵌入的散景 实际上我使用 plot sizing mode scale width 它根据宽度进行缩放并保持纵横比 但我想要一个响应宽度但固定或最大高度 这怎么可能实现呢 有stretch both and scale b
  • 另一个宏中的 Q_PROPERTY 宏

    如何放置Q PROPERTY另一个宏里面 辅助宏 define SimpleAllinOne member type public void Set member type arg member m member arg member ty
  • 按 ListProperty (NDB) 对查询进行排序

    如何按 ListProperty 对查询进行排序 该模型 class Chapter ndb Model title ndb StringProperty required True version ndb IntegerProperty
  • 使用 GeoDjango 在坐标系之间进行转换

    我正在尝试将坐标信息添加到我的数据库中 添加django contrib gis支持我的应用程序 我正在写一个south数据迁移 从数据库中获取地址 并向 Google 询问坐标 到目前为止 我认为我最好的选择是使用geopy为了这 接下来
  • 如何通过 Python socket.send() 发送字符串以外的任何内容

    我对 Python 编程非常陌生 但出于必要 我必须快速地将一些东西组合在一起 我正在尝试通过 UDP 发送一些数据 除了当我执行 socket send 时 我必须以字符串形式输入数据之外 一切都正常 这是我的程序 这样你就可以看到我在做
  • 打印一个 Jupyter 单元中定义的所有变量

    有没有一种更简单的方法来以漂亮的方式显示单个单元格中定义的所有变量的名称和值 我现在做的方式是这样的 但是当有30个或更多变量时我浪费了很多时间 您可以使用whos http ipython readthedocs io en stable
  • 如何通过facebook-sdk python api获取用户帖子?

    我使用 facebook jssdk 授权我的应用程序读取用户个人资料和用户帖子 FB login function response scope user status user likes user photos user videos
  • Docker:通过 Gunicorn 运行 Flask 应用程序 - Worker 超时?表现不佳?

    我正在尝试创建一个用Python Flask编写的新应用程序 由gunicorn运行 然后进行dockerized 我遇到的问题是 docker 容器内的性能非常差 不一致 我最终得到了响应 但我不明白为什么性能会下降 有时我会在日志中看到
  • 获取 zeep.exceptions.ValidationError:缺少与 suds 一起使用的方法的元素

    我正在移植开发的代码suds 0 6到zeep 2 4 0 以前的泡沫代码 client Client WSDLfile proxy proxy faults True config client factory create perUse
  • keras 预测内存交换无限期增加

    我使用keras实现了一个分类程序 我有一大组图像 我想使用 for 循环来预测每个图像 然而 每次计算新图像时 交换内存都会增加 我尝试删除预测函数内部的所有变量 并且我确信该函数内部存在问题 但内存仍然增加 for img in ima
  • Python将csv数据导出到文件中

    我有以下运行良好的代码 但我无法修剪数据并将其存储在数据文件中 import nltk tweets love this car this view amazing not looking forward the concert def g
  • 指定 Parquet 属性 pyspark

    如何在 PySpark 中指定 Parquet 块大小和页面大小 我到处搜索 但找不到任何有关函数调用或导入库的文档 根据火花用户档案 https mail archives apache org mod mbox spark user 2
  • 如何在 Tkinter 的 Button 小部件中创建多个标签?

    我想知道如何在 Tkinter 中创建具有多个标签的按钮小部件 如下图所示 带有子标签的按钮 https i stack imgur com jOZRw jpg正如您所看到的 在某些按钮中有一个子标签 例如按钮 X 有另一个小标签 A 我试
  • Scrapy - 不会爬行

    我正在尝试运行递归爬行 由于我编写的爬行不能正常工作 因此我从网络上提取了一个示例并进行了尝试 我真的不知道问题出在哪里 但是爬行没有显示任何错误 谁能帮我这个 另外 是否有任何逐步调试工具可以帮助理解蜘蛛的爬行流程 非常感谢任何与此相关的
  • 对 pandas 数据框中的每一列应用函数

    我如何以更多的熊猫方式编写以下函数 def calculate df columns mean self df means for column in df columns columns tolist cleaned data self
  • 带有整数的 np.sqrt 和 where 条件返回错误结果

    当我将 numpy sqrt 方法应用于带有 a 的整数数组时 我得到了奇怪的结果where健康 状况 见下文 对于整数 a np array 1 4 9 np sqrt a where a gt 5 Out 3 array 0 0 5 3
  • 在 Gensim 中通过 ID 检索文档的字符串版本

    我正在使用 Gensim 进行一些主题建模 并且已经达到使用 LSI 和 tf idf 模型进行相似性查询的程度 我取回 ID 集和相似点 例如 299501 0 64505910873413086 如何获取与 ID 在本例中为 29950
  • 将笔记本生成的 HTML 片段转换为 LaTeX 和 PDF

    在我的笔记本里有时会有 from IPython display import display HTML display HTML h3 The s is important h3 question of the day 但当我后来将笔记本

随机推荐

  • ggplot2 - 可以通过计算的 y (stat_summary) 值重新排序 x 吗?

    是否可以通过 stat summary 使用计算出的 y 重新排序 x 值 我认为这应该有效 stat summary aes x reorder XVarName y 但我收到以下错误 错误 stat summary 需要以下缺失的美感
  • xpath:字符串操作

    因此 在我的 scrapy 项目中 我能够隔离一些特定字段 其中一个字段返回类似以下内容 Rank Info on 2013 06 27 14 26 Read 174 Times 通过表达式选择 td class show content
  • 相同连续数字的正则表达式

    我如何编写一个正则表达式来处理子字符串是 6 个或更多连续数字的所有实例 例如这样 000000 111111 222222 333333 444444 555555 I tried 0 9 6 我计划稍后对此进行否定 以便我可以在这些情况
  • 未找到致命错误“stdio.h”

    为什么我会收到此消息 编译器是 clang 的 这是一个简单的程序 出于示例目的 include
  • Django 为用户信号创建配置文件

    我尝试使用信号为用户帐户创建配置文件 但编写代码后根本没有创建 姜戈3 0 5 用户 模型 py from django db import models from django contrib auth models import Use
  • Selenium + VBA 控制 Chrome

    我使用 selenium vba 启动 chrome 以打开单元格范围 A1 A10 中列出的 10 个网址 我对硒不熟悉 经过多次尝试 我终于得出了下面笨重的代码 Private selenium As New ChromeDriver
  • 函数变量和应用中的 ()

    The 类型和功能讲座呈现函数 f44 gt Integer f44 44 我输入以下内容 ghci gt let f 5 ghci gt f 5 但是 我很困惑 in let f 通常 作为初学者 我见过函数名称后面有一个不可变变量 即f
  • 如何以编程方式设置 Jenkins Email-ext 插件的收件人?

    我正在尝试设置收件人Email ext aka Editable Email Notficiation 给失败测试的所有者 由于只有在构建失败后才能计算所有者 因此Inject Environment Variables插件无法使用 如何才
  • SSE 矩阵-矩阵乘法

    我在 C 中使用 SSE 进行矩阵 矩阵乘法时遇到问题 这是我到目前为止得到的 define N 1000 void matmulSSE int mat1 N N int mat2 N N int result N N int i j k
  • 如何在 android 2.2 上创建新数据库之前检查现有数据库?

    在 android 2 2 上创建新数据库之前 我需要检查现有数据库 如何检查呢 use openOrCreateDatabase method 在这里阅读 编辑 public boolean checkDataBase SQLiteDat
  • 将一个表的内容复制到另一个表中

    在我当前的应用程序中 我需要将一个表的内容复制到另一个表中 通过设置innerHTML 它在 FF 中完美运行 但在 IE8 中则不行 这是我在 FF 中复制的代码 getID tableA innerHTML getID tableB i
  • 同一数据集中具有父子关系的 JQuery 数据表。如何将其显示为表中的父子行?

    我有一个嵌套数据集 数据集中很少有记录是同一数据集中其他记录的子记录 父级为 null 的记录没有任何子元素 但具有与 is 关联的值的记录将指示其在同一数据集中的父级 我如何在 jQuery Datatable 中用父子关系表示这一点 我
  • 集合的顺序是否像 python3.6 中的字典一样

    由于变化dictPython 3 6 中的实现现在默认是排序的 做set现在也维持秩序了吗 我找不到有关它的任何信息 但由于这两种数据结构在幕后工作方式非常相似 我认为情况可能如此 我知道没有任何承诺dict在所有情况下都必须订购 但大多数
  • 如何使用 Prettier 禁用元素标签中的属性破坏

    我使用 Vue CLI 生成了一个新的 Vue 项目 对于 linter 选项提示 我选择 Prettier 如何禁用对新行的属性破坏 例如 这是我的标记
  • Android 11 范围存储权限

    我的应用程序使用提供的图像的文件路径Environment getExternalStorageDirectory 创建照片相册 但使用Android 11 我将无法直接访问文件 根据 Android 开发者文档 他们最近推出了MANAGE
  • 404、500 的自定义错误页面,但默认的 500 错误消息来自哪里?

    目前正在制作中 我收到以下文本 500 Internal Server Error If you are the administrator of this website then please read this web applica
  • 如何将 CUDA 编译为 llvm IR?

    我已经尝试了三天将 CUDA 内核编译为 llvm IR 但我无法做到 我已经改变了langoptions cpp并添加了CUDA 1 在构造函数中 但 clang 仍然给我 cuda 语法的错误消息 如 synchthreads 调用 我
  • 如何在 WordPress 中调整大小/访问原始图像?

    wordpress中的图片在哪里调整大小 在数据库中 在文件夹中 我将如何调整大小original图像 不创建新版本 我问这个问题是因为我上传了相当多的图像 这些图像太大并且会减慢 WordPress 网站上的加载时间 并且我想调整它们的大
  • 通过捕获括号进行正则表达式分割 - 浏览器支持:

    看这个样本 gt 1 2 3 4 5 split 结果 1 2 3 4 5 但看看这个样本 gt 1 2 3 4 5 split 结果 1 2 3 4 5 From MDN 如果分隔符是包含捕获的正则表达式 括号 那么每次匹配分隔符时 结果
  • PyQt 中的 os.walk 类似物

    在我可以继续实现递归目录 文件搜索并对某些任务进行一些过滤之前 我想知道 Qt PyQt 是否有类似的os walk 主应用程序是 PyQt4 中的 GUI 应用程序 所有文本字段都在QStrings 和路径对象 文件 目录 使用QFile