python 串口接收数据形成txt文件

问题遇到的现象和发生背景

现在可以形成文件但是文件名是以时间变化而变化 每隔一分钟形成一个新的 想要使窗口打开后成立一个 直到窗口关闭。不用一分钟就生成一个新的txt文件

问题相关代码,请勿粘贴截图
#接收到数据长度 查看发送过来的数据
    def slot_ReadData(self,data):
        self.Receivelength=self.Receivelength+len(data)#收到数据的长度
        self.ui.label_recview.setText("接收:"+str(self.Receivelength))
        Byte_data=bytes(data)#强制转换
        if self.ui.checkBox_16view.checkState():
            View_data=''#新建空字符
            for i in range(0,len(Byte_data)):#返回的字符对象的长度
             View_data=View_data+'{:02x}'.format(Byte_data[i])+' '#每个字节转换成16进制
             self.ui.textEdit_recview.insertPlainText(View_data)#输出框显示
        else:
           print("字符串显示")
           self.ui.textEdit_recview.insertPlainText(Byte_data.decode('utf-8','ignore'))
           self.ui.textEdit_recview.moveCursor(QTextCursor.End)#鼠标放在最后面
           #判断时间 定义一个时钟
           now = datetime.now()
           date_time = now.strftime("%Y-%m-%d, %H:%M:%S")
           print(date_time)
           #检测com口
           com_str= self.ui.comboBox_Com.currentText()
           f = "{}{}.txt".format(now.strftime("%Y-%m-%d %H点%M分"), com_str)
           opt = open(f, 'a')  # 创建文件写入模式,w原有的内容被覆盖# 不想被覆盖 w变成a a为追加模式
           opt.write(str(data, encoding='utf-8'))
           opt.close()


运行结果及报错内容

每隔一分钟新建一个

我的解答思路和尝试过的方法
我想要达到的结果

窗口重新打开时再新建立一个文件

做两个处理
1、在 是窗口的init
定义初始化的文件名

now = datetime.now()
self.file_name  = "{}.txt".format(now.strftime("%Y-%m-%d %H点%M分"))

2、写文件时
获取主窗口的属性

 open(self.file_name,'a') as f 

把生成文件名的位置,就是生成f的位置,放到跟窗口初始化打开差不多的位置
就打开一次窗口新生成一个文件
就不会传一次数据就生成一个文件

加个判断,如果文件存在,就追加内容或者做你想做的操作,如果不存在,就建立文件