我用PyQt5创建了一个应用程序,并使用Pyinstaller进行了捆绑。该应用程序从存储在与启动应用程序的.py文件相同目录中的login.properties文件中加载登录信息。
如此处所建议的那样,我正在使用以下函数修改路径:
如此处所建议的那样,我正在使用以下函数修改路径:
import os, sys
# Translate asset paths to useable format for PyInstaller
def resource_path(relative_path):
if hasattr(sys, '_MEIPASS'):
return os.path.join(sys._MEIPASS, relative_path)
return os.path.join(os.path.abspath('.'), relative_path)
它会创建一个名为_MEIPASS的临时文件夹,其中包含诸如我的login.properties之类的文件。
在应用程序中,我想使用以下函数保存login.properties信息:
self.loginFile = resource_path('./login.properties')
def save_login_info(self):
config = configparser.ConfigParser()
config.read(self.loginFile)
pw = self.login_ui.password_lineEdit.text()
un = self.login_ui.username_lineedit.text()
token = self.login_ui.token_lineEdit.text()
alias = self.login_ui.gmail_alias_lineedit_2.text()
...
config.set('Login', 'password', pw )
config.set('Login', 'username', un )
config.set('Login', 'security_token', token )
config.set('Login', 'alias', alias)
with open(self.loginFile, 'w') as loginfile:
config.write(loginfile)
print('Login info saved')
因此,更改的登录信息保存在临时文件/文件夹中,而不是保存在“原始”文件中。
有什么想法可以缓解这个问题吗?
abs_home
和f".my_app_folder"
时,在 "my_app_folder" 前面使用句点的作用是什么? - jack.py