怎么设计一个界面,界面有一个按钮,点击该按钮选择文件,并读取文件内容显示在该界面上
下面是我写的代码,我把txt,doc,docx,xls,xlsx这几种格式都试了一下,可以正常读取和显示在文本框内,只是关于一些文本框大小细节等问题,需要修改一下。
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
class filedialogdemo(QWidget):
def __init__(self, parent=None):
super(filedialogdemo, self).__init__(parent)
layout = QVBoxLayout()
self.le = QLabel("")
layout.addWidget(self.le)
self.btn1 = QPushButton("打开文本文件")
self.btn1.clicked.connect(self.getfiles)
layout.addWidget(self.btn1)
self.contents = QTextEdit()
layout.addWidget(self.contents)
self.setLayout(layout)
self.setWindowTitle("打开文件示例")
def getfiles(self):
dlg = QFileDialog()
dlg.setFileMode(QFileDialog.AnyFile)
# QFileDialog.ExistingFiles可选择打开多个文件,返回文件路径列表
# dlg.setFileMode(QFileDialog.ExistingFiles)
dlg.setFilter(QDir.Files)
if dlg.exec_():
filenames = dlg.selectedFiles()
file_name = filenames[0]
if file_name.endswith('doc') or file_name.endswith('docx'):
import docx
data = docx.Document(file_name)
content = ''
for each in data.paragraphs:
content += str(each.text)
content += '\n'
elif file_name.endswith('xls') or file_name.endswith('xlsx'):
import pandas as pd
xlsx = pd.ExcelFile(file_name)
content = str(pd.read_excel(xlsx))
else:
with open(file_name, 'r', encoding='utf-8',errors = 'ignore') as f:
content = f.read()
self.contents.setText(content)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = filedialogdemo()
ex.show()
sys.exit(app.exec_())
提供参考链接:用PYQT5设计Python运行界面:选择文件夹的文件并自动获取文件地址,链接:https://blog.csdn.net/qq_44040327/article/details/122282719
在“选择文件”的对话框后面加一个文字为“打开”的按钮。给按钮组件添加动作事件。在事件中加入判断,在用户选择了文件的情况下读取文件、处理文件数据,然后设置界面组件的显示值
试试这个 https://blog.csdn.net/qq_44040327/article/details/122282719
tkinter
python使用界面-如何使用Python建立有窗口、按钮之类的图形界面
https://blog.csdn.net/weixin_37988176/article/details/109414544