python - 使用 Python 选择目录
问题描述
我想用 Python 选择 5 个图像,以便我可以在我的 python 程序中使用这些图像。我试图用 QFileDialog() (PyQt5) 来做到这一点,但我只成功地单选了一个文件。而如何选择文件夹也不是很全面。
我只想选择 5 张图像并选择一个文件夹,以便我可以将文件保存在该文件夹中。但要做到这一点似乎并不容易。我真的很喜欢 Python,因为它非常简单,但 PyQt5 让我每次使用它时都非常激进,所有其他库都很好且易于理解。也许pyqt有一个很好的替代品?tkinter 也许?
谢谢。
解决方案
Qt 提供了一堆静态方法来获得标准化的文件对话框,其中两个已经满足您的需求:(getOpenFileNames()
强调最后的“s”)和getExistingDirectory()
.
第一个将返回所选文件[s]的绝对路径列表,最后一个将返回所选目录。
我知道,如果您对 C++ 一无所知,阅读官方文档可能会有点不知所措(尽管对它们进行了详细解释),但它们并不像人们想象的那么难。
每个函数都以非常简单的方式列出:
returned_type : function_name(arguments) [const -> you can usually ignore this]
returned_type 是函数预期返回的值的类型。在“c++ slang”void
中,与return
(或根本不返回,因为如果函数末尾没有返回其他值/对象return None
,Python 会隐式返回),如果类型是 QString,它会自动转换为 Python , while和 Python 的浮点数一样,. 这对于 Qt 内部使用的“私有”函数(方法)非常重要:如果您是子类化并想要覆盖 Qt 类的私有方法,则必须返回 Qt 期望的类型。理论上你可以忽略None
str
qreal
returned_type
如果您知道自己在做什么,则用于公共功能,但通常最好坚持使用原始类型。有一些小的“例外”需要考虑。在某些情况下,Qt 期望在函数中修改某些参数,并且通常会返回函数是否成功,而在 Python 中它可能会返回对参数的引用(抱歉,我现在不记得它们了)。其他一些函数返回一个元组而不是单个值,这就是一些静态 QFileDialog 函数的情况,例如 getOpenFileName[s] 它返回选定的文件[s] 和选定的过滤器。
推荐阅读
- windows - 为什么awk打印中文字符
- f# - 结果的最终输出,在 F# 中
- reactjs - 侧边栏上的动态选项
- powershell - 基于 CSV 内容的 Powershell 复制文件
- apache-spark - 数据框`show`上的Apache Spark意外错误
- node.js - npm/git 发布我的项目的一部分并使用 vscode 管理它的最佳策略?
- arrays - 在 MATLAB 中从整数中减去数组
- html - 表格单元格移动它下面的所有内容
- css - Bootstrap 卡片中心不同大小的图片
- ssh - 连接到本地 gitlab 实例时的 kex_exchange_identification