更改权限处理方式

This commit is contained in:
wszqkzqk 2022-08-08 12:21:13 +08:00
parent 44ccabd74d
commit 1c52ea88f4
2 changed files with 4 additions and 12 deletions

View File

@ -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为644Windows为可读、可写
fileHandler.setFormatter(formatter)
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(formatter)

View File

@ -66,23 +66,14 @@ class Control():
# 因此仍然采用try-except实现而非if-else实现
try:
# 存在存档即导入
# 自动修复读写权限
# Python权限规则和Unix不一样420表示unix的644Windows自动忽略不支持项
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的655Windows自动忽略不支持项
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()