pyinstaller打包后,配置文件無法正常讀取的解決
pyinstaller打包配置文件無法正常讀取
import os file = os.path.dirname(os.path.abspath(__file__)) cf = configparser.ConfigParser() print(file) cf.read(file+'/data.ini')
先獲取絕對路徑在讀取
pyinstaller又踩一坑,configparser os.mknod
在使用pyinstaller時,有使用configparser模塊。
使用相對路徑。在pycharm中測試,正常,打包成exe,就出錯了
換用絕對路徑,
print(os.getcwd()) fp_dir=os.getcwd() print(fp_dir) fp = fp_dir + '\conf.ini' ?# 定義配置文件名 print(fp)
基本正常。
可是遇到了
conf.read(fp) ?# 打開conf ? ? conf.add_section('conf') ?# 添加conf節(jié)點
不能自動創(chuàng)建文件
嘗試os.mknod,windows下根本不支持。
? ? tes = open(fp,'a') ? ? tes.close()
用open方法,終于調(diào)試成功。
完整代碼
def make_conf(): ? ? print('make') ? ? conf = ConfigParser() ?# 實例化 ? ? print('沒有配置文件,創(chuàng)建中') ? ? tes = open(fp, 'a') ? ? tes.close() ? ? firefox = str(get_extension(['firefox.exe'])) ? ? geckodriver = str(get_extension(['geckodriver.exe'])) ? ? WeChat = str(get_extension(['WeChat.exe'])) ? ? conf.read(fp) ?# 打開conf ? ? if type!='up': ? ? ? ? conf.add_section('conf') ?# 添加conf節(jié)點 ? ? print('add section') ? ? conf.set('conf', 'firefox', firefox) ?# 添加值 ? ? conf.set('conf', 'geckodriver', geckodriver) ?# 添加值 ? ? conf.set('conf', 'wechat', WeChat) ?# 添加值 ? ? # conf.set('conf', 'firefox', '') ?# 添加值 ? ? # conf.set('conf', 'geckodriver', '') ?# 添加值 ? ? # conf.set('conf', 'wechat', '') ?# 添加值 ? ? print('set all', fp) ? ? with open(fp, 'w') as fw: ?# 循環(huán)寫入 ? ? ? ? conf.write(fw) ? ? return True
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決Python 中JSONDecodeError: Expecting value:&n
這篇文章主要介紹了解決Python 中JSONDecodeError: Expecting value: line 1 column 1 (char 0)錯誤問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03使用虛擬環(huán)境打包python為exe 文件的方法
這篇文章主要介紹了關(guān)于使用虛擬環(huán)境打包python為exe 文件的方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08Python實現(xiàn)將doc轉(zhuǎn)化pdf格式文檔的方法
這篇文章主要介紹了Python實現(xiàn)將doc轉(zhuǎn)化pdf格式文檔的方法,結(jié)合實例形式分析了Python實現(xiàn)doc格式文件讀取及轉(zhuǎn)換pdf格式文件的操作技巧,以及php調(diào)用py文件的具體實現(xiàn)方法,需要的朋友可以參考下2018-01-01numpy使用fromstring創(chuàng)建矩陣的實例
今天小編就為大家分享一篇numpy使用fromstring創(chuàng)建矩陣的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06python之Flask實現(xiàn)簡單登錄功能的示例代碼
這篇文章主要介紹了python之Flask實現(xiàn)簡單登錄功能的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12Windows系統(tǒng)下實現(xiàn)pycharm運行.sh文件(本地運行和打開服務(wù)器終端)
PyCharm是Python開發(fā)的高效率IDE,但是很多時候需要同時開發(fā)Bash(shell)腳本,下面這篇文章主要給大家介紹了關(guān)于Windows系統(tǒng)下實現(xiàn)pycharm運行.sh文件(本地運行和打開服務(wù)器終端)的相關(guān)資料,需要的朋友可以參考下2022-09-09