当前位置: 首页 > 后端技术 > Python

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

时间:2023-03-25 22:07:56 Python

最近看到市面上各种文档格式转换软件,不是收费的,就是广告多。于是学习了PyQt5的页面操作,然后学习了pandas的使用。于是萌生了一个想法,写一个简单的文档格式转换应用。或者有更好的实现方式欢迎在评论区留言,一起讨论学习~源码请滑到文末获取...【阅读全文】需求分析1.将.txt文本文档转换为csv格式文档。2.将.txt文本文档转换为excel格式文件。开发环境1、运行环境:python-3.8.x版本2、操作系统:windows7系统3、开发工具:pycharm2021.1版本参考模块PyQt5参考相关模块fromPyQt5.QtWidgetsimport*fromPyQt5.QtCoreimport*fromPyQt5。QtGuiimport*系统文件操作引用的模块importsysimportosimportpandasaspdUI界面代码块设置桌面应用标题self.setWindowTitle('textformatconverter')grid=QGridLayout()创建一个QTextEdit()来转换应用中的文档格式中的注意事项在文本中进行了描述,并设置为只读模式。'''文档转换说明'''self.text_current_label=QTextEdit()self.text_current_label.setReadOnly(True)self.text_current_label.setText('''1、txt文本格式说明:每行数据用英文逗号","分隔,txt''格式的文档是根据每一行的数据来读取的,所以需要按照规则换行,保证每一行的数据格式一致。\n''每行数据示例:张三,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('get.txtfile')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('Get.xlsxfile')self.xlsx_file_path_btn.clicked.connect(self.xlsx_file_path_btn_click)'''.csvfile'''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('Startconversion')self.trans_btn.setStyleSheet('color:green')self.trans_btn.clicked.connect(self.trans_btn_click)主UI界面相关设计如上这些,由于篇幅太大,就不一一列举了。有兴趣的朋友可以到后面提供的链接下载源码。格式转换主要代码块首先读取.txt文本文档的文件,以DataFrame的数据格式存储在一个变量中,用于后续的格式转换。defread_txt_for_dataframe(self):self.columns=[]ifself.data_frame_columns_text().strip()!=''andself.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)elifself.data_frame_columns_text().strip()!=''andself.data_frame_columns_text.text().find(',')==-1:self.warn_dialog_msg('请正确填写数据column!')else:self.data_frame=pd.read_csv(self.txt_file_path.text(),encoding='utf-8',index_col=0)print(self.data_frame)使用pandas提供的csv文件保存功能module以.csv格式保存文件。defdataframe_to_csv(self):self.data_frame.to_csv(self.csv_file_path.text())使用pandas模块提供的excel文件保存功能,将文件保存为.xlsx格式。defdataframe_to_xlsx(self):self.data_frame.to_excel(self.xlsx_file_path.text())效果展示界面风格比较简单。看一下整个应用程序的界面设计。效果操作前往全文查看...完整源码获取方式:在公众号回复“文本格式转换器”,欢迎在评论区留下您的宝贵建议![往期精选]PyPDF2如何实现根据PDF页码提取并保存为PDF文件?浪漫海龟,送给程序员自己的圣诞树!PyQt5GUI:百度图片下载器python3中zip()、zip(*)、list()的灵活转换(文末附源码)!PyQt5GUI&&RequestsApi做一个天气查询系统(完整代码在文末获取)!