首页 > 其他分享 >Pyqt6在lineEdit中输入文件名称并创建或删除JSON文件

Pyqt6在lineEdit中输入文件名称并创建或删除JSON文件

时间:2024-12-21 23:56:05浏览次数:6  
标签:文件 filePath self Pyqt6 JSON 名称 模块 文件名称

1、创建JSON文件

代码

import os

def addModulekeyWordFile(self):
    if "" != self.lineEdit_module.text():
      moduleFile = self.lineEdit_module.text() + '.json'
    else:
      self.toolLogPrinting('请输入模块名称')
      return
    filePath = modulekeyWordFileDir + moduleFile
    if os.path.exists(filePath):
      self.toolLogPrinting('文件已经存在于:' + filePath)
    else:
      with open(filePath, 'w') as f:
          f.write('{}')
      f.close()
      self.toolLogPrinting('已创建:' + filePath)
      self.refreshModulComboBox(modulekeyWordFileDir)

 def toolLogPrinting(self, content):
    curtime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
    self.plainTextEdit.appendPlainText(curtime + "  "+ content)

  def refreshModulComboBox(self, fileDir):
    self.getFileName(fileDir)
    self.comboBox_logmodule.clear()
    self.comboBox_logmodule.addItems(moduleFilename_arr)

代码功能解释

这段代码的功能是添加模块关键字文件

具体步骤如下:

1. 检查用户是否输入了模块名称。如果没有输入,则提示用户输入模块名称并返回。

2. 如果用户输入了模块名称,则生成对应的 JSON 文件路径。

3. 检查该文件是否存在。如果文件已存在,则提示用户文件已存在。

4. 如果文件不存在,则创建该文件,并写入空的 JSON 对象 `{}`。

5. 最后,刷新模块组合框以反映新添加的文件。 

控制流图

解释

  • A:开始执行 addModulekeyWordFile 方法。
  • B:检查用户是否在文本框中输入了模块名称。
  • C:如果模块名称为空,提示用户输入模块名称并结束方法。
  • D:如果模块名称不为空,生成对应的 JSON 文件路径。
  • E:检查生成的文件路径是否存在。
  • F:如果文件已存在,提示用户文件已存在。
  • G:如果文件不存在,创建文件并写入空的 JSON 对象。
  • H:刷新模块组合框以反映新添加的文件。
  • I:结束方法。

2、删除JSON文件

    代码

import os

def delmoduleFile(self):
    if "" != self.lineEdit_module.text():
      moduleFile = self.lineEdit_module.text() + '.json'
    else:
      self.toolLogPrinting('请输入模块名称')
      return
    filePath = modulekeyWordFileDir + moduleFile
    if os.path.exists(filePath):
      os.remove(filePath)
      self.toolLogPrinting('文件删除成功')
      self.refreshModulComboBox(modulekeyWordFileDir)
    else:
      self.toolLogPrinting('没有找到要删除的文件:' + filePath)

代码功能解释

这段代码实现了删除模块文件的功能,

具体步骤如下:

1. 检查用户是否输入了模块名称。

2. 如果有输入,则生成对应的JSON文件路径。

3. 检查文件是否存在。

4. 如果文件存在,则删除文件并刷新模块组合框;如果文件不存在,则提示用户。

控制流图

解释

  • A[开始]: 函数开始执行。
  • B{检查模块名称是否为空}: 检查用户是否在 lineEdit_module 中输入了模块名称。
  • C[提示请输入模块名称]: 如果模块名称为空,提示用户输入模块名称并结束函数。
  • D[生成文件路径]: 如果模块名称不为空,生成对应的JSON文件路径。
  • E{检查文件是否存在}: 检查生成的文件路径是否存在。
  • F[删除文件]: 如果文件存在,删除该文件。
  • G[提示删除成功]: 提示用户文件删除成功。
  • H[刷新模块组合框]: 刷新模块组合框以反映最新的模块列表。
  • I[提示没有找到文件]: 如果文件不存在,提示用户没有找到要删除的文件。
  • J[结束]: 函数结束。

标签:文件,filePath,self,Pyqt6,JSON,名称,模块,文件名称
From: https://blog.csdn.net/weixin_29547033/article/details/144633339

相关文章

  • CJSON使用注意事项
    在STM32F103环境下,cJSON占用RAM约4kB,堆空间需调整至0X500起Heap_SizeEQU0x00000500使用cJSON_Parse创建一个cJSON指针后,用完务必使用cJSON_Delete函数释放该cJSON指针。cJSON_Parse(cjson_root);/*usercode*/cJSON_Delete(cjson_root);使用cJSON_Cr......
  • 39.在 Vue3 中使用 OpenLayers 导出 GeoJSON 文件及详解 GEOJSON 格式
    一、引言在Web地图开发领域,Vue3作为一款流行的前端框架,结合强大的OpenLayers地图库,能够实现丰富多样的地图功能。其中,将地图数据以GeoJSON格式导出是一项常见且实用的需求,本文将深入探讨如何在Vue3环境下借助OpenLayers达成这一目标,并详细剖析GeoJSON格式文件。......
  • React之Json编辑器
    我们先看下效果,这个白色是不是非常不错?没有太多复杂的功能,就是当一个简洁显示json并且进行编辑的功能接下来是代码部分importAceEditorfrom'react-ace';import{Button,Modal}from'antd';import'./styles.css';//Importaceeditorthemesandmodesimport'ac......
  • DuckDB:JSON数据探索性分析实战教程
    简单来说,EDA通常指的是数据集的任何初始处理。通常,这些是较小的数据集,是较大数据集的子集,但你也可以使用大数据执行EDA。在本文中,你将扮演SecOps分析师的角色,对EDR(EndpointDetectionandResponse:端点检测和响应)数据的快照执行EDA,这些数据可能来自主流工具。测试数据......
  • 修改python jsonpickle源码, 实现不序列化对象私有成员(3)
    发现之前修改源码后,虽然过滤掉对象的私有成员,但是反序列化的时候,发现生成的对象只有只有公有成员,不包括私有成员.这不是我想要的,因为没有私有成员,对象就不完整了,并且有时候还需要一些私有成员的默认值.所以,还需要再优化一下.修改unpickler.py文件的def_restor......
  • SpringBoot3整合FastJSON2如何配置configureMessageConverters
    在SpringBoot3中整合FastJSON2主要涉及到以下几个步骤,包括添加依赖、配置FastJSON作为JSON处理器等。下面是详细的步骤:1.添加依赖首先,你需要在你的pom.xml文件中添加FastJSON2的依赖。以下是Maven依赖的示例:<!--https://mvnrepository.com/artifact/com......
  • Jackson的@JsonGetter 注解
    1.概述Jackson是Java生态系统中不可或缺的工具,提供了将Java对象序列化为JSON以及反序列化的功能。它的一个特性是@JsonGetter注解,用于在序列化过程中自定义getter方法输出的名字。@JsonGetter注解概览Jackson的@JsonGetter注解用来标识一个方法作为特定属......
  • Jackson 的@JsonAnyGetter注解
    1.概述在Java领域,Jackson是一个非常灵活的库,用于将Java对象转换为JSON格式,并支持反向操作。它的一个强大注解是@JsonAnyGetter,该注解允许在序列化的JSON中添加动态属性,而无需在POJO(PlainOldJavaObject)中定义具体的属性。@JsonAnyGetter注解概览@JsonAnyGe......
  • 修改python jsonpickle源码, 实现不序列化对象私有成员(2)
    在前一篇文章中,通过修改源码来实现对象的私有成员不被序列化的功能.但是不够灵活,于是我又修改了一版,能够自定义过滤函数.实现起来不是很难,要点如下:#pickler.py的_flatten_obj_instance函数self._current_obj=obj#记录正在处理的对象returnself._flatten_dict......
  • JackJson的@JsonAutoDetect注解
    1、@JsonAutoDetect(作用在类上):自动检测fieldVisibility:字段的可见级别;getterVisibility:getter方法的可见级别;setterVisibility:setter方法的可见级别。ANY:任何级别的字段都可以自动识别NONE:任何字段都不可以自动识别NON_PRIVATE:非private修饰的字段可以自动识别PROTECTED_OR......