From 1c52ea88f4036a47717dc4307a2e3b4ecabaaf60 Mon Sep 17 00:00:00 2001 From: wszqkzqk Date: Mon, 8 Aug 2022 12:21:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=94=B9=E6=9D=83=E9=99=90=E5=A4=84?= =?UTF-8?q?=E7=90=86=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pypvz.py | 1 + source/tool.py | 15 +++------------ 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/pypvz.py b/pypvz.py index f56f05e..58be596 100755 --- a/pypvz.py +++ b/pypvz.py @@ -18,6 +18,7 @@ if __name__ == "__main__": logger = logging.getLogger("main") formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s") fileHandler = RotatingFileHandler(c.USERLOG_PATH, "a", 1024*1024, 0, "utf-8") + os.chmod(c.USERLOG_PATH, 420) # 设置日志文件权限,Unix为644,Windows为可读、可写 fileHandler.setFormatter(formatter) streamHandler = logging.StreamHandler() streamHandler.setFormatter(formatter) diff --git a/source/tool.py b/source/tool.py index 6094bd9..6e3bc36 100755 --- a/source/tool.py +++ b/source/tool.py @@ -66,23 +66,14 @@ class Control(): # 因此仍然采用try-except实现而非if-else实现 try: # 存在存档即导入 + # 自动修复读写权限 + # Python权限规则和Unix不一样,420表示unix的644,Windows自动忽略不支持项 + os.chmod(c.USERDATA_PATH, 420) with open(c.USERDATA_PATH) as f: userdata = json.load(f) self.applyUserData(userdata) # 写入时也可能发生权限问题,因此放到try语句中 except FileNotFoundError: self.setupUserData() - except PermissionError: - logger.warning("用户存档文件不可读!程序将自动设置存档文件为可读状态!\n") - # Python权限规则和Unix不一样,420表示unix的655,Windows自动忽略不支持项 - os.chmod(c.USERDATA_PATH, 420) - try: - with open(c.USERDATA_PATH) as f: - userdata = json.load(f) - except json.JSONDecodeError: - logger.warning("用户存档解码错误!程序将新建初始存档!\n") - self.setupUserData() - else: - self.applyUserData(userdata) except json.JSONDecodeError: logger.warning("用户存档解码错误!程序将新建初始存档!\n") self.setupUserData()