PyQt5随笔:PyQt5 程序在开机自启动时读取文件出错导致崩溃解决办法

PyQt5随笔:PyQt5 程序在开机自启动时读取文件出错导致崩溃解决办法

1.前言

最近在写一个 Python+pyqt5 小项目,在改善过程中想添加一个日志记录,我是打算用txt 文件记录就好,操作简单易学。

说做就做,敲完代码,在PyCharm 程序的好好的,本来以为成功了。但在次日打开电脑(我的程序是设置了windows开机自启动的,并已打包成 exe 文件)却在自启动过程中崩溃了。

但之后自己亲手打开软件时又正常使用,就只在开机自启动时出错,反复修改了 N 遍代码,就是不行,都有些崩溃了😤

最后才发现是打开写日志文件的地址格式的差别导致的。真是意想不到。😂

2.错误与正确代码

!!!错误代码

log_text = '错误代码'
        #把壁纸切换记录写入log.txt 文件
with open('logtext.txt', 'a+', encoding='utf-8') as log_file:
    log_file.write(log_text)  #追加模式写入日志

日志文件 logtext.txt 是建立在程序目录下的,在测试时使用相对地址 'logtext.txt'并没有出错。但这没有经历过开机自启动测试。导致我误以为成功了。。。。


👍👍👍 正确的代码

path = os.path.abspath(sys.argv[0])  #获取运行的主程序绝对路径 如我的返回path= r'D:\code_python\Pui2\test_0625.py'
path_dir, path_filename = os.path.split(path)  # 把文件路径分割为文件夹路径和文件名称
path = path_dir + '\\logtext.txt'  #合并路径,得到一个完整的日志文件路径 如我的变成:path= r'D:\code_python\Pui2\logtext.txt'

with open(path, 'a+', encoding='utf-8') as log_file:
	log_file.write(log_text)

如果文件需在自启动时进行读写操作,一定要使用绝对路径,要不然出错。其他时候读写文件可以使用相对路径地址。

:在Windows里 r'D:\code_python\Pui2\logtext.txt''D:\\code_python\\Pui2\\logtext.txt'是等同的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值