QFileDialog.getExistingDirectory()打开只显示制定文件后缀的文件
时间: 2024-04-12 08:26:56 浏览: 219
QFileDialog 打开对话框,路径为我的电脑或者网络
`QFileDialog.getExistingDirectory()` 是用于选择文件夹路径的方法,它不支持直接过滤文件后缀名。但是你可以自己对选择的文件夹路径进行过滤,只选择符合指定后缀名的文件。
以下是一个示例代码,演示如何使用 `QFileDialog.getExistingDirectory()` 方法选择文件夹路径,并对该文件夹下的文件进行后缀名过滤:
```python
from PyQt5.QtWidgets import QApplication, QFileDialog
import os
if __name__ == "__main__":
app = QApplication([])
# 获取用户选择的文件夹路径
directory = QFileDialog.getExistingDirectory(None, "Select Directory")
if directory:
# 指定要筛选的后缀名
extensions = ['.txt', '.csv']
# 遍历文件夹下的所有文件,并进行后缀名过滤
for root, dirs, files in os.walk(directory):
for file in files:
if os.path.splitext(file)[1] in extensions:
file_path = os.path.join(root, file)
print("Filtered file:", file_path)
app.exec_()
```
在这个示例代码中,我们使用 `QFileDialog.getExistingDirectory()` 方法获取用户选择的文件夹路径。然后,我们指定了要筛选的后缀名列表 `extensions`,例如 ['.txt', '.csv']。接下来,我们使用 `os.walk()` 遍历文件夹下的所有文件,并使用 `os.path.splitext()` 分离文件名和扩展名。如果扩展名存在于 `extensions` 列表中,我们将文件的完整路径打印出来。
请注意,这个示例只是对选择的文件夹路径下的文件进行了后缀名过滤,而不是对选择文件夹对话框本身进行过滤。因为 `QFileDialog.getExistingDirectory()` 方法本身不支持直接过滤文件后缀名。
阅读全文