基于Python实现简易文档格式转换器

目录
  • 需求分析
  • 开发环境
  • 引用模块
  • UI界面代码块
  • 格式转换主要代码块
  • 效果展示

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

需求分析

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())

效果展示

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

以上就是基于Python实现简易文档格式转换器的详细内容,更多关于Python文档格式转换器的资料请关注我们其它相关文章!

(0)

相关推荐

  • python实现word文档批量转成自定义格式的excel文档的思路及实例代码

    支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符 最近在开发一个答题类的小程序,到了录入试题进行测试的时候了,发现一个问题,试题都是word文档格式的,每份有100题左右,拿到的第一份试题,光是段落数目就有800个.而且可能有几十份这样的试题. 而word文档是没有固定格式的,想批量录入关系型数据库mysql,必须先转成excel文档.这个如果是手动一个个粘贴到excel表格,那就头大了. 我最终需要的excel文档结构是这样的:每道题独立占1行,每1列是这道题的一项内

  • Python实现将doc转化pdf格式文档的方法

    本文实例讲述了Python实现将doc转化pdf格式文档的方法.分享给大家供大家参考,具体如下: #-*- coding:utf-8 -*- # doc2pdf.py: python script to convert doc to pdf with bookmarks! # Requires Office 2007 SP2 # Requires python for win32 extension import sys, os from win32com.client import Dispa

  • Python数据库格式化输出文档的思路与方法

    问题 如果文案格式是统一的,是否可以通过Python格式化输出doc/md的文档? 能用代码搞定的,尽力不手工 思路 首先,数据已经录入库,需要python能读取数据库,可使用mysql-connector 其次,格式化输出的文档,肯定需要文件读写操作,需使用os 接着,考虑到各大平台多数支持markdown格式,优先输出md格式文档.若输出doc,需使用docx 补充,python一键执行,分页数据操作,接收外部参数,需使用sys 编码 分页获取数据库内容 import mysql.conne

  • python读取pdf格式文档的实现代码

    python读取pdf文档 一. 准备工作 安装对应的库 pip install pdfminer3k pip install pdfminer.six 二.部分变量的含义 PDFDocument(pdf文档对象) PDFPageInterpreter(解释器) PDFParser(pdf文档分析器) PDFResourceManager(资源管理器) PDFPageAggregator(聚合器) LAParams(参数分析器) 三.PDFMiner类之间的关系 PDFMiner的相关文档(点击

  • 利用python将图片转换成excel文档格式

    前言 本文主要介绍了关于利用python将图片转换成excel文档的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实现步骤 读取图像,获取图像每个像素点的RGB值: 根据每个像素点的RGB值设置excel每个方格的颜色值: 根据像素点的坐标,写入excel文件: 保存退出: 示例代码 from PIL import Image import numpy as np import time import matplotlib.pyplot as plt import

  • 基于Python实现简易文档格式转换器

    目录 需求分析 开发环境 引用模块 UI界面代码块 格式转换主要代码块 效果展示 最近看到市场上各种的文档格式转换软件,要么是收费.要么是有大量的广告.于是学习了一下 PyQt5 的页面操作,再加上了解 pandas 的使用方法.所以,萌生了想法写一个简单的文档格式转换应用.或者有更好的实现方式请在评论区留言,大家一起讨论学习~ 需求分析 1.将 .txt 的文本文档转换成 csv 格式文件. 2.将 .txt 的文本文档转换成 excel 格式文件. 开发环境 1.运行环境:python-3.

  • 如何基于Python实现word文档重新排版

    介绍 舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作. 分析需求 对文档中的内容进行分析,只留下题目,选项,并且题号要从1开始. 编写代码 pip安装python-docx模块 读取word文档内容(如果是以.doc后缀的文件需另存为.docx文件!) from docx import Document # 打开文件 srcdocx = Document('src.docx') # 遍历所有段

  • opencv python简易文档之图像处理算法

    目录 将图片转为灰度图 HSV 图像阈值 图像平滑 形态学-腐蚀操作 形态学-膨胀操作 开运算与闭运算 梯度运算 礼帽与黑帽 图像梯度处理 Canny边缘检测 图像金字塔 图像轮廓 直方图 直方图均衡化: 自适应均衡化: 傅里叶变换 模板匹配 总结 上一篇已经给大家介绍了opencv python图片基本操作的相关内容,这里继续介绍图像处理算法,下面来一起看看吧 将图片转为灰度图 import cv2 #opencv读取的格式是BGR img=cv2.imread('cat.jpg') # 将图

  • opencv python简易文档之图片基本操作指南

    前言 最近在学习opencv,使用的是python接口.于是想着写些相关的笔记供以后参考,有不足之处希望大家指出. 使用python学习opencv需要下载opencv第三方库. 使用pip安装即可. 安装命令: pip install opencv-python pip install opencv-contrib-python(opencv的贡献库) 引入opencv import cv2 读取图片: img=cv2.imread('cat.jpg') # cat.jpg路径为相对路径 #

  • 基于Python编写简易文字语音转换器

    话不多说上代码!源代码 from tkinter import * import pyttsx3 class Application(Frame): def __init__(self,master=None): super().__init__(master) self.master = master self.pack() self.creatWidget() # BING INPUT def creatWidget(self): self.w1 = Text(self, width=80,

  • 基于Python实现简易的动漫图片转换器

    本文旨在制作一个将普通照片转换成动漫图片的小工具,其中使用opencv的非标准库实现对图片完成转换. UI界面的制作使用的还是pyqt5,因为用习惯了使用起来相当方便,接下来还是先将使用到的python非标准库列举一下. # PyQt5相关模块 from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import * # 动漫图片制作的业务模块 import cv2 import sys import o

  • 用 Python 写的文档批量翻译工具效果竟然超出想象

    大家好,我是启航. 本文将给大家分享一个实用的Python办公自动化脚本 「利用Python批量翻译英文Word文档并保留格式」,最终效果甚至比部分收费的软件还要好!先来看看具体的工作内容. 一.需求描述 手上有大量外文文档(本案例以5份为例,分别命名为 test1.docx test2.docx 以此类推),其中一份如下: 基本需求:「批量将这些文档的内容全部翻译成中文,并转存到新的文件中」,效果如下: 高级需求:基本需求满足的同时,要求 「保留原文档的格式」,效果如下: 二.逻辑梳理 1.

  • python读取word文档的方法

    本文实例讲述了python读取word文档的方法.分享给大家供大家参考.具体如下: 首先下载安装win32com from win32com import client as wc word = wc.Dispatch('Word.Application') doc = word.Documents.Open('c:/test') doc.SaveAs('c:/test.text', 2) doc.Close() word.Quit() 这种方式产生的text文档,不能用python用普通的r方

  • PHP基于DOM创建xml文档的方法示例

    本文实例讲述了PHP基于DOM创建xml文档的方法.分享给大家供大家参考,具体如下: DOM创建xml文档 用dom创建如下文档: <booklist> <book id="1"> <title>天龙八部</title> <author>金庸</author> <content> <![CDATA[ 天龙八部是金庸写的一本武侠小说,非常好看! ]]> </content> <

随机推荐