找回密码
 立即注册
Qt开源社区 门户 查看内容

PyQt学习笔记-打开文件并从中读取数据(进阶篇)

2019-4-12 05:24| 发布者: admin| 查看: 3040| 评论: 0

摘要: 一 函数功能1 本文实现了打开 txt、word、excel 格式文件2 读取文件内容3 并打印到text.Browser上二 源码import docxfrom xlrd import open_workbook@pyqtSlot()defon_menu_files_open_triggered(self):## win32com ...

一 函数功能

1 本文实现了打开 txt、word、excel 格式文件
2 读取文件内容
3 并打印到text.Browser上

二 源码

import docx
from xlrd import open_workbook

@pyqtSlot()
defon_menu_files_open_triggered(self):

## win32com 对Python3.x 支持效果不好,弃用之

# from win32com import client as wc
# word = wc.Dispatch('Word.Application')
# word.Visible = 0
print("打开")
dialog = QFileDialog()
my_file_path = dialog.getOpenFileName(self,"打开文件",
"E:\\7Program\\Pycharm\\PyQt\\eric6-19.03\\Workspace\\")[0]

print(my_file_path)
if my_file_path[-4:]=='.doc'or my_file_path[-5:]=='.docx':

# my_worddoc = word.Documents.Open(my_file_path.replace('/', '\\'))
# print(type(my_worddoc))
# my_count = my_worddoc.Paragraph.Count
# for i in range(my_count):
# my_pr = my_worddoc.paragraph[i].Range
# print(my_pr.text)
# self.textBrowser.append(my_pr.text)
# my_worddoc.Close()

## 采用 python-docx

# my_doc = docx.Document(my_file_path.replace('/', '\\'))
# # print(my_doc.paragraphs[0].text)
# for my_paragraph in my_doc.paragraphs:
# print(my_paragraph.text)
# self.textBrowser.append(my_paragraph.text)

self.textBrowser.append(read_docx(my_file_path.replace('/','\\')))

elif my_file_path.endswith('.xlsx'):
print('excel!')
wb = open_workbook(my_file_path.replace('/','\\'))
for s in wb.sheets():
for row inrange(s.nrows):
for col inrange(s.ncols):
print(s.cell(row, col).value)

elif my_file_path[-4:]=='.txt':
f =open(my_file_path[0],'r', encoding="utf-8")
my_data = f.read()
f.close()
self.textBrowser.append(my_data)
else:
QMessageBox.information(self,'Information','不支持的文件格式')

三 注意事项

1 win32com 对Python3.x 支持效果不好
建议使用python-docx、xlrd、xlwt 第三方库
2 encoding
3 path "/" 转义
4 cell 类的用法
5 具体可以参考官方库文档

下面是三木小小推的二维码,欢迎订阅呦~~






你点的每个好看,我都认真当成了喜欢


----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:三木小小推,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了