Python3 PyQt5 实现文件打开及保存

2023-11-15

# -*- 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_())

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python3 PyQt5 实现文件打开及保存 的相关文章

  • 在PyGI中获取窗口句柄

    在我的程序中 我使用 PyGObject PyGI 和 GStreamer 在 GUI 中显示视频 该视频显示在Gtk DrawingArea因此我需要获取它的窗口句柄realize 信号处理程序 在 Linux 上 我使用以下方法获取该句
  • 如何指定聚类的距离函数?

    我想对给定距离的点进行聚类 奇怪的是 似乎 scipy 和 sklearn 聚类方法都不允许指定距离函数 例如 在sklearn cluster AgglomerativeClustering 我唯一可以做的就是输入一个亲和力矩阵 这将非常
  • LibreOffice 并行将 .docx 转换为 .pdf 效果不佳

    我有很多 docx 文件需要转换为 pdf 将它们一一转换需要很长时间 所以我编写了一个 python 脚本来并行转换它们 from subprocess import Popen import time import os os chdi
  • 如何在python中附加两个字节?

    说你有b x04 and b x00 你如何将它们组合起来b x0400 使用Python 3 gt gt gt a b x04 gt gt gt b b x00 gt gt gt a b b x04 x00
  • 从 pyspark.sql 中的列表创建数据框

    我完全陷入了有线的境地 现在我有一个清单li li example data map lambda x get labeled prediction w x collect print li type li 输出就像 0 0 59 0 0
  • 将 pandas 剪切操作转换为常规字符串

    我明白了 pandas cut 操作的输出 0 0 20 1 0 20 2 0 20 3 0 20 4 0 20 5 0 20 6 0 20 7 0 20 8 0 20 9 0 20 如何将 0 20 转换为 0 20 我正在这样做 str
  • 如何将 sql 数据输出到 QCalendarWidget

    我希望能够在日历小部件上突出显示 SQL 数据库中的一天 就像启动程序时突出显示当前日期一样 在我的示例中 它是红色突出显示 我想要发生的是 当用户按下突出显示的日期时 数据库中日期旁边的文本将显示在日历下方的标签上 这是我使用 QT De
  • 如何使用 opencv python 计算乐高积木上的孔数?

    我正在开发我的 python 项目 我需要计算每个乐高积木组件中有多少个孔 我将从输入 json 文件中获取有关需要计算哪个程序集的信息 如下所示 img 001 red 0 blue 2 white 1 grey 1 yellow 1 r
  • python 中的 h2o 框架子集

    如何在 python 中对 h2o 框架进行子集化 如果 x 是一个 df 并且 Origin 是一个变量 那么在 pandas 中我们通常可以通过以下方式进行子集化 x x Origin AAF 但使用 h2o 框架会出现以下错误 H2O
  • Python MySQL 操作错误:1045,“用户 root@'localhost' 的访问被拒绝

    我试图通过以下方式从我的 python 程序访问数据库 db mysql connect host localhost user Max passwd maxkim db TESTDB cursor db cursor 但是 我在第一行代码
  • 仅当某些值相等时,如何才能将一个文本文件中的值替换为另一个文本文件中的其他值?

    我有一个名为finalscores txt我想创建一个 python 脚本 它将打开它并从两个单独的列中读取值 这是我的finalscores txt file Atom nVa predppm avgppm stdev delta QPr
  • NumPy 相当于 Keras 函数 utils.to_categorical

    我有一个使用 Keras 进行机器学习的 Python 脚本 我正在构建 X 和 Y 它们分别是特征和标签 标签的构建方式如下 def main depth 10 nclass 101 skip True output True video
  • pygame:使用 sprite.RenderPlain 绘制精灵组的顺序

    我有一个精灵组 需要按一定的顺序绘制 以便其精灵按应有的方式重叠 然而 即使使用运算符模块函数 sorted self sprites key attrgetter y x 对组进行排序 顺序也是错误的 我该如何解决这个问题 直截了当地说
  • 如何在 Seaborn 中的热图轴上表达类

    我使用 Seaborn 创建了一个非常简单的热图 显示相似性方阵 这是我使用的一行代码 sns heatmap sim mat linewidths 0 square True robust True sns plt show 这是我得到的
  • 为正则表达式编写解析器

    即使经过多年的编程 我很羞愧地说我从未真正完全掌握正则表达式 一般来说 当问题需要正则表达式时 我通常可以 在一堆引用语法之后 想出一个合适的正则表达式 但我发现自己越来越频繁地使用这种技术 所以 自学并理解正则表达式properly 我决
  • 无法在 PyCharm 版本 9.3.3 中安装 NumPy。 Python版本3.8.2

    在 PyCharm 中安装 NumPy 时出错 尝试安装 Microsoft Visual C 14 0 还是行不通 NumPy 正在通过命令安装pip3 install numpy在 cmd 终端中 但是当尝试将其安装在 PyCharm
  • Python守护进程:保持日志记录

    我有一个将一些数据记录到磁盘的脚本 logging basicConfig filename davis debug log level logging DEBUG logging basicConfig filename davis er
  • 基于值而不是类型的单次调度

    我在 Django 上构建 SPA 并且有一个庞大的功能 其中包含许多功能if用于检查我的对象字段的状态名称的语句 像这样 if self state new do some logic if self state archive do s
  • 根据多个阈值将 SciPy 分层树状图切割成簇

    我想将 SciPy 的树状图切割成多个具有多个阈值的簇 我尝试过使用 fcluster 但它只能削减一个阈值 例如 这是我从另一个问题中摘取的一段代码 import pandas data pandas DataFrame total ru
  • 在 numpy 中连接维度

    我有x 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 2 3 I want 1 2 3 4 5 6 7 8 9 10 11 12 shape 2 6 也就是说 我想连接中间维度的所有项目 在这种特殊情况下我可以得到这

随机推荐

  • Oracle数据库查询最近一周的记录(后台时间存储类型为10位时间戳)

    现有一张SHOPPING表 记录最近的购物记录 包括商品名 金额 时间 以10位时间戳形式存储 为了更直观地了解时间信息 我们需要将10位时间戳转换成我们能够看懂的时间字符串 查询sql如下 SELECT NAME AMOUNT CDATE
  • Python 搭建虚拟环境

    简介 实际开发中 我们为了防止python安装的包污染用户环境 比如你是root用户 利用pip安装后的包会放在root的python安装录中 很可能会影响root用户的其他操作 我们用root用户使用pip安装软件包后 linux环境会报
  • Django2.0-templates(1)-渲染模版方式和模版查找路径

    templates Django自带的是DTL Django Templates language DTL模版是一种带有特殊语法的HTML文件 该文件可以被Django编译 可以传递参数进去 实现数据动态化 编译完成后 生成一个普通的HTM
  • 如何安装elasticsearch分布式搜索引擎

    文章目录 安装elasticsearch 1 部署单点es 1 1 创建网络 1 2 下载镜像 1 3 运行 2 部署kibana 2 1 部署 2 2 安装中文 2 3 DevTools 3 安装IK分词器 3 1 在线安装ik插件 较慢
  • MQL5:zig-zag 指标

    Zig Zag 指标是用于描述高低点趋势的指标 MQL5 官方实现 MQL5 官方实现十分地烂 辣鸡 很多无用的变量 程序冗长 不一致 效率低下 感觉是多个菜鸟合作写出来的 有一些没有用的变量都没有删掉 不过 先来看看MQL5的官方实现 辅
  • 在ActiveX控件中如何动态调用DLL函数

    刚到公司不久 接到领导的下达的一个任务 就是把对POS机操作功能封装在ActiveX控件中 在IE中调用 这样就能实现在IE上直接对POS机进行操作 而我要封装的这个动态库 厂家只提供了一个单的动态库和一百多字的说明 也就是说明一下动态库中
  • vue笔记-inheritAttrs及$attr表示含义(一)

    一 引用官方解释 inheritAttrs 默认值true 在这种情况下父作用域的不被认作 props 的特性绑定 attribute bindings 将会 回退 且作为普通的 HTML 特性应用在子组件的根元素上 attr 包含了父作用
  • 服务器网站用绝对路径,云服务器上的绝对路径

    云服务器上的绝对路径 内容精选 换一换 已成功登录Java性能分析 待安装分析辅助软件的服务器已开启sshd Java性能分析优先选用非交互shell non interactive shell 中的JAVA HOME环境变量所指定的JRE
  • 关于iptables -m选项以及规则的理解

    关于iptables的详细状态可以查看http os 51cto com art 201108 285209 htm 时常在服务器的防火墙上看到有这些规则 2 106K 8294K ACCEPT all 0 0 0 0 0 0 0 0 0
  • 自定义Switch背景带文字

    需要实现的效果 标题代码实现 div class custom switch span class custom left 关灯 span div class switch btn div span class custom right 开
  • mysql thread_MySQL thread_stack连接线程的优化

    MySQL连接不仅能通过网络方式 还可以通过命名管道的方式 不论是哪种方式连接MySQL 在MySQL中都是通过线程的方式管理所有客户端请求的 每一个客户端连接都会有一个与之对应的连接线程 在MySQL中实现了一个Thread Cache池
  • MySQL8高级优化,持续更新......

    索引 索引可以高效获取数据 避免对数据进行全盘扫描 查询速度很慢 索引就是一种数据结构 树 MySQL官方对索引的定义为 索引 index 是帮助MySQL高效获取数据的数据结构 有序 在数据之外 数据库系统还维护者满足特定查找算法的数据结
  • python 线性回归 统计检验 p值_使用Python进行统计建模

    点击上方 早起python 关注早起 和我一起 成为更好的自己 前言 大家好 在 之前的文章中 我们已经讲解了很多Python数据处理的方法比如 读取数据 缺失值处理 数据降维等 也介绍了一些数据可视化的方法如 Matplotlib pye
  • 电脑出现不停刷新即Windows资源管理器不停重启的情况(win10)

    电脑出现不停刷新即Windows资源管理器不停重启的情况 win10 一 现象 电脑出现不停刷新的情况 打开任务管理器发现 Windows资源管理器 进程占用很高的CPU又降下去 反复出现 二 解决方案 1 win R 在输入框中输入reg
  • PhD新生规划知乎、一亩三分地观点摘抄

    1 thesis 68 封私信 80 条消息 对 PhD 一年级新生有什么建议 知乎 zhihu com 我觉得一个优秀的phd应该是这样的 整个phd期间就发有限的几篇 然后这几篇文章就像沙滩上的脚印一样 围成了一个圈或者一个区域 这个圈
  • 解决uniapp 报错 chunk-vendors.js:25968 GET http://localhost:8080/sockjs-node/info?t=15996357

    在目录中新建一个package lock json 然后在里面添加 sockjs dev false sockjs client dev false
  • FISCO BCOS 一、搭建第一个区块链网络(及配置控制台)

    1 搭建单群组FISCO BCOS联盟链 本节以搭建单群组FISCO BCOS链为例操作 使用开发部署工具 build chain sh脚本在本地搭建一条4 节点的FISCO BCOS链 这里我用的是ubuntu20 04 第一步 安装依赖
  • 异或的巧妙用法(比较数字是否相同/独数)

    比较两个数是否相同或者在数组 该数组同一个相同数最多2个 中找出一个单独出现的数字 我们可以用异或的方法来巧妙的解决 C 代码 class Solution public int singleNumber vector
  • 《深度学习500问》一份超全深度学习资料,面试必备!

    给大家推荐一本还未完成的深度学习书籍 深度学习500问 为什么要推荐一本未完成的书 首先 这本书的作者是通过问答的形式 对常用的概率知识 线性代数 机器学习 深度学习 计算机视觉等热点问题进行阐述 清晰明了 方便检索 特别适合初学者 其次
  • Python3 PyQt5 实现文件打开及保存

    coding utf 8 Form implementation generated from reading ui file filemanage ui Created by PyQt5 UI code generator 5 12 2