pyqt5选择一个文件夹并将其中所有TXT文件写入列表框
时间: 2023-02-09 07:46:22 浏览: 70
可以使用QFileDialog类中的getExistingDirectory()方法选择文件夹,然后使用os.listdir()函数获取文件夹中的所有文件名,再使用循环遍历文件名列表并判断文件扩展名是否为".txt",如果是则将文件名写入QListWidget中。
```python
import os
from PyQt5.QtWidgets import QFileDialog, QListWidget
def select_folder():
directory = QFileDialog.getExistingDirectory()
if directory:
# 获取文件夹中所有文件名
file_list = os.listdir(directory)
# 创建QListWidget
list_widget = QListWidget()
for file_name in file_list:
# 判断文件扩展名是否为".txt"
if file_name.endswith(".txt"):
# 将文件名写入QListWidget
list_widget.addItem(file_name)
```
相关问题
用pyqt5写一个选择文件夹的程序并带有注释
好的,以下是用pyqt5写一个选择文件夹的程序并带有注释的代码:
```
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QFileDialog, QPushButton, QLabel, QVBoxLayout
class FolderSelector(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 创建一个标签用于显示选择的文件夹路径
self.folder_label = QLabel('请选择文件夹')
# 创建一个按钮用于触发选择文件夹的操作
self.select_folder_button = QPushButton('选择文件夹', self)
self.select_folder_button.clicked.connect(self.select_folder)
# 创建一个垂直布局,并将标签和按钮添加到其中
vbox = QVBoxLayout()
vbox.addWidget(self.folder_label)
vbox.addWidget(self.select_folder_button)
# 将布局应用到窗口中
self.setLayout(vbox)
self.setGeometry(300, 300, 300, 150)
self.setWindowTitle('文件夹选择器')
self.show()
def select_folder(self):
# 打开文件夹选择对话框
folder_path = QFileDialog.getExistingDirectory(self, '选择文件夹')
# 如果用户选择了文件夹,则更新标签的文本
if folder_path:
self.folder_label.setText(folder_path)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = FolderSelector()
sys.exit(app.exec_())
```
注释已经添加在代码中,可以帮助理解每个部分的作用。
pyqt5 选择文件夹 框
你可以使用QFileDialog来创建一个选择文件夹的对话框。以下是一个简单的示例:
```python
from PyQt5.QtWidgets import QApplication, QFileDialog
app = QApplication([])
# 显示选择文件夹对话框
folder_path = QFileDialog.getExistingDirectory(None, "选择文件夹", "/")
print("选择的文件夹路径:", folder_path)
```
在上面的代码中,`getExistingDirectory()`方法将打开一个对话框,允许用户选择一个文件夹。第一个参数是父窗口,如果你不需要一个父窗口,可以传递`None`。第二个参数是对话框标题。第三个参数是打开对话框时显示的默认文件夹路径。当用户选择一个文件夹后,`getExistingDirectory()`将返回文件夹路径。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)