Python3中PyQt5简单实现文件打开及保存


Posted in Python onJune 10, 2021

本文主要介绍了Python3中PyQt5简单实现文件打开及保存,分享给大家,具体如下:

# -*- coding: utf-8 -*-
 
# Form implementation generated from reading ui file 'filemanage.ui'
#
# Created by: PyQt5 UI code generator 5.12.2
#
# WARNING! All changes made in this file will be lost!
 
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import QFileInfo
from PyQt5.QtWidgets import QFileDialog
 
 
class Ui_Form(object):
    save_path = ''
 
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(484, 412)
        self.open_path_text = QtWidgets.QLineEdit(Form)
        self.open_path_text.setGeometry(QtCore.QRect(40, 20, 331, 20))
        self.open_path_text.setObjectName("open_path_text")
        self.open_path_but = QtWidgets.QPushButton(Form)
        self.open_path_but.setGeometry(QtCore.QRect(380, 20, 75, 23))
        self.open_path_but.setObjectName("open_path_but")
        self.save_path_but = QtWidgets.QPushButton(Form)
        self.save_path_but.setGeometry(QtCore.QRect(380, 50, 75, 23))
        self.save_path_but.setObjectName("save_path_but")
        self.save_path_text = QtWidgets.QLineEdit(Form)
        self.save_path_text.setGeometry(QtCore.QRect(40, 50, 331, 20))
        self.save_path_text.setObjectName("save_path_text")
        self.text_value = QtWidgets.QTextEdit(Form)
        self.text_value.setGeometry(QtCore.QRect(10, 90, 461, 281))
        self.text_value.setObjectName("text_value")
        self.save_but = QtWidgets.QPushButton(Form)
        self.save_but.setGeometry(QtCore.QRect(190, 380, 75, 23))
        self.save_but.setObjectName("save_but")
 
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
 
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.open_path_text.setPlaceholderText(_translate("Form", "打开地址"))
        self.open_path_but.setText(_translate("Form", "浏览"))
        self.save_path_but.setText(_translate("Form", "浏览"))
        self.save_path_text.setPlaceholderText(_translate("Form", "保存地址"))
        self.save_but.setText(_translate("Form", "保存"))
        self.open_path_but.clicked.connect(self.open_event)
        self.save_path_but.clicked.connect(self.save_event)
        self.save_but.clicked.connect(self.save_text)
 
    def open_event(self):
        _translate = QtCore.QCoreApplication.translate
        directory1 = QFileDialog.getOpenFileName(None, "选择文件", "H:/")
        print(directory1)  # 打印文件夹路径
        path = directory1[0]
        self.open_path_text.setText(_translate("Form", path))
        if path is not None:
            with open(file=path, mode='r+', encoding='utf-8') as file:
                self.text_value.setPlainText(file.read())
 
    def save_event(self):
        global save_path
        _translate = QtCore.QCoreApplication.translate
        fileName2, ok2 = QFileDialog.getSaveFileName(None, "文件保存", "H:/")
        print(fileName2)  # 打印保存文件的全部路径(包括文件名和后缀名)
        save_path = fileName2
        self.save_path_text.setText(_translate("Form", save_path))
 
    def save_text(self):
        global save_path
        if save_path is not None:
            with open(file=save_path, mode='a+', encoding='utf-8') as file:
                file.write(self.text_value.toPlainText())
            print('已保存!')
            self.text_value.clear()
 
            '''
            directory1 = QFileDialog.getExistingDirectory(self, "选择文件夹", "/")
            print(directory1)  # 打印文件夹路径
            text.setText(_translate("Form", directory1))
            fileName, filetype = QFileDialog.getOpenFileName(self, "选择文件", "/", "All Files (*);;Text Files (*.txt)")
            print(fileName, filetype)  # 打印文件全部路径(包括文件名和后缀名)和文件类型
            print(fileName)  # 打印文件全部路径(包括文件名和后缀名)
            text.setText(_translate("Form", fileName))
            fileinfo = QFileInfo(fileName)
            print(fileinfo)  # 打印与系统相关的文件信息,包括文件的名字和在文件系统中位置,文件的访问权限,是否是目录或符合链接,等等。
            file_name = fileinfo.fileName()
            print(file_name)  # 打印文件名和后缀名
            file_suffix = fileinfo.suffix()
            print(file_suffix)  # 打印文件后缀名
            file_path = fileinfo.absolutePath()
            print(file_path)  # 打印文件绝对路径(不包括文件名和后缀名)
            files, ok1 = QFileDialog.getOpenFileNames(self, "多文件选择", "/", "所有文件 (*);;文本文件 (*.txt)")
            print(files, ok1)  # 打印所选文件全部路径(包括文件名和后缀名)和文件类型
            fileName2, ok2 = QFileDialog.getSaveFileName(self, "文件保存", "/", "图片文件 (*.png);;(*.jpeg)")
            print(fileName2)  # 打印保存文件的全部路径(包括文件名和后缀名)
            '''
 
if __name__ == "__main__":
    import sys
 
    app = QtWidgets.QApplication(sys.argv)
    widget = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())

Python3中PyQt5简单实现文件打开及保存

Python3中PyQt5简单实现文件打开及保存

到此这篇关于Python3中PyQt5简单实现文件打开及保存的文章就介绍到这了,更多相关PyQt5 文件打开保存内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python之yield表达式学习
Sep 02 Python
详解Python迭代和迭代器
Mar 28 Python
Python AES加密模块用法分析
May 22 Python
python安装twisted的问题解析
Aug 21 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
详解python之heapq模块及排序操作
Apr 04 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
python版百度语音识别功能
Jul 09 Python
解决Django no such table: django_session的问题
Apr 07 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
使用Tensorflow-GPU禁用GPU设置(CPU与GPU速度对比)
Jun 30 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 Python
Python selenium的这三种等待方式一定要会!
python实现股票历史数据可视化分析案例
Python如何识别银行卡卡号?
使用python+pygame开发消消乐游戏附完整源码
Python数据可视化之基于pyecharts实现的地理图表的绘制
python使用PySimpleGUI设置进度条及控件使用
python3+PyQt5+Qt Designer实现界面可视化
You might like
php IP转换整形(ip2long)的详解
2013/06/06 PHP
Yii框架中 find findAll 查找出制定的字段的方法对比
2014/09/10 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
学习JavaScript设计模式之单例模式
2016/01/19 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
JS去除重复并统计数量的实现方法
2016/12/15 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
vue开发调试神器vue-devtools使用详解
2017/07/13 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
基于node下的http小爬虫的示例代码
2018/01/11 Javascript
快速解决bootstrap下拉菜单无法隐藏的问题
2018/08/10 Javascript
python用reduce和map把字符串转为数字的方法
2016/12/19 Python
Python正则表达式分组概念与用法详解
2017/06/24 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python列表list保留顺序去重的实例
2018/12/14 Python
详解Python文件修改的两种方式
2019/08/22 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
修改Pandas的行或列的名字(重命名)
2019/12/18 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
pycharm 多行批量缩进和反向缩进快捷键介绍
2021/01/15 Python
HTML5超文本标记语言的实现方法
2020/09/24 HTML / CSS
遗体告别仪式答谢词
2014/01/23 职场文书
优秀教师工作感言
2014/02/16 职场文书
行政人事岗位职责
2014/03/17 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
红领巾广播站广播稿(3篇)
2014/09/20 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
使用CSS实现音波加载效果
2023/05/07 HTML / CSS