自制文档格式转换器,支持 .txt/.xlsx/.csv格式转换...

最近看到市场上各种的文档格式转换软件,要么是收费、要么是有大量的广告。于是学习了一下 PyQt5 的页面操作,再加上了解 pandas 的使用方法。所以,萌生了想法写一个简单的文档格式转换应用。或者有更好的实现方式请在评论区留言,大家一起讨论学习~

file

请滑到文章底部获取源代码......

【阅读全文】

需求分析

1、将 .txt 的文本文档转换成 csv 格式文件。

2、将 .txt 的文本文档转换成 excel 格式文件。

开发环境

1、运行环境:python-3.8.x版本

2、操作系统:windows7 系统

3、开发工具:pycharm 2021.1 版本

引用模块

PyQt5 引用的相关模块

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

系统文件操作引用的模块

import sys
import os
import pandas as pd

UI界面代码块

设置桌面应用标题

self.setWindowTitle('文本格式转换器')

grid = QGridLayout()

创建一个 QTextEdit(),将应用中文档格式转换中需要注意的地方以文本的形式进行说明并将其设置为只读模式。

'''文档转换说明'''
self.text_current_label = QTextEdit()
self.text_current_label.setReadOnly(True)
self.text_current_label.setText(''
                                        '1、txt 文本格式说明:每行数据使用英文状态下的逗号","隔开,txt '
                                        '格式的文档是按照每行数据进行读取的,所以需要按照规则进行换行保证每行的数据格式一致。\n'
                                        '每行数据举例:zhangsan,21,男,98,优秀\n\n'
                                        '2、excel 格式的文档需要事先创建好.xlsx 的空文件(本应用不会自动创建新文件,后期需要可以加上)。\n\n'
                                        '3、csv 格式的文档需要事先创建好 .csv 的空文件(本应用不会自动创建新文件,后期需要可以加上)。')
self.text_current_label.setStyleSheet('color:blue')
self.text_current_label.setMaximumHeight(90)

读取 .txt 的文本文档文件的按钮,并将文档地址设置到输入框中的操作。因此,需要创建一个文件读取按钮以及只读模式的输入框。

'''.txt 文件'''

self.txt_file_path = QLineEdit()

self.txt_file_path.setReadOnly(True)

self.txt_file_path_btn = QPushButton()

self.txt_file_path_btn.setText('获取.txt文件')

self.txt_file_path_btn.clicked.connect(self.txt_file_path_btn_click)

同样的,分别做 csv 文件和 excel 文件的读取页面设计。

'''.xlsx 文件'''

self.xlsx_file_path = QLineEdit()

self.xlsx_file_path.setReadOnly(True)

self.xlsx_file_path_btn = QPushButton()

self.xlsx_file_path_btn.setText('获取.xlsx文件')

self.xlsx_file_path_btn.clicked.connect(self.xlsx_file_path_btn_click)
'''.csv 文件'''

self.csv_file_path = QLineEdit()

self.csv_file_path.setReadOnly(True)

self.csv_file_path_btn = QPushButton()

self.csv_file_path_btn.setText('获取.csv文件')

self.csv_file_path_btn.clicked.connect(self.csv_file_path_btn_click)

最后,加上文件转换的可选项设计,再添加开始转换的按钮提供应用转换的开始执行的效果。

'''.xlsx .csv 选项  转换按钮'''

self.xlsx_checkbox = QCheckBox()

self.xlsx_checkbox.setText('.xlsx')

self.csv_checkbox = QCheckBox()

self.csv_checkbox.setText('.csv')

self.trans_btn = QPushButton()

self.trans_btn.setText('开始转换')

self.trans_btn.setStyleSheet('color:green')

self.trans_btn.clicked.connect(self.trans_btn_click)

主要的UI界面相关的设计就是上述这些,由于篇幅太大就不一一列举了,有兴趣的朋友可以到后面提供的链接下载源码。

格式转换主要代码块

首先,将 .txt 文本文档的文件读取出来,并以 DataFrame 的数据格式存放到变量供后面的格式转换使用。

 def read_txt_for_dataframe(self):

        self.columns = []

        if self.data_frame_columns_text.text().strip() != '' and self.data_frame_columns_text.text().find(',') != -1:

            self.columns = self.data_frame_columns_text.text().split(',')

            self.data_frame = pd.read_csv(self.txt_file_path.text(), encoding='utf-8', index_col=0, names=self.columns)

            print(self.data_frame)

        elif self.data_frame_columns_text.text().strip() != '' and self.data_frame_columns_text.text().find(',') == -1:

            self.warn_dialog_msg('请正确填写数据列!')

        else:

            self.data_frame = pd.read_csv(self.txt_file_path.text(), encoding='utf-8', index_col=0)

            print(self.data_frame)

使用 pandas 模块提供的 csv 文件保存函数进行 .csv 格式的文件保存。

  def dataframe_to_csv(self):

        self.data_frame.to_csv(self.csv_file_path.text())

使用 pandas 模块提供的 excel 文件保存函数进行 .xlsx 格式的文件保存。


    def dataframe_to_xlsx(self):

        self.data_frame.to_excel(self.xlsx_file_path.text())

效果展示

界面风格比较简单,看一下整个应用界面设计是这样的。

file

效果操作前往全文查看......

完整源代码获取方式:公众号内回复 "文本格式转换器",欢迎在评论区留下您宝贵的建议!

【往期精选】

PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?

浪漫的turtle,送给程序员自己的圣诞树!

PyQt5 GUI:百度图片下载器(文末附源码)

python3中的zip()、zip(*)、list()之间的灵活转换!

PyQt5 GUI && Requests Api 做一个天气查询系统(文末领取完整代码)!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,042评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 89,996评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,674评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,340评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,404评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,749评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,902评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,662评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,110评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,451评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,577评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,258评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,848评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,726评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,952评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,271评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,452评论 2 348

推荐阅读更多精彩内容