gpt4 book ai didi

python - 在 IOError 上打开不同的文件

转载 作者:行者123 更新时间:2023-12-01 03:29:07 24 4
gpt4 key购买 nike

我编写了一个 python 脚本,想要将日志写入/var/log/myapp.log 中的文件。然而,在某些平台上这并不存在,或者我们可能没有这样做的权限。既然如此,我想尝试在其他地方写。

def get_logfile_handler():
log_file_handler = None
log_paths = ['/var/log/myapp.log', './myapp.log']
try:
log_file_handler = logging.FileHandler(log_paths[0])
except IOError:
log_file_handler = logging.FileHandler(log_paths[1])

return log_file_handler

上面的代码可能有效,但它似乎远非优雅 - 特别是,尝试不同的文件作为异常处理的一部分似乎是错误的。它可能会抛出另一个异常!

理想情况下,它需要任意路径列表,而不是两个。有没有一种优雅的方式来写这个?

最佳答案

您可以简单地使用循环,例如:

def get_logfile_handler():
log_file_handler = None
log_paths = ['/var/log/myapp.log', './myapp.log']
for log_path in log_paths:
try:
return logging.FileHandler(log_path)
except IOError:
pass

raise Exception("Cannot open log file!")

HTH

关于python - 在 IOError 上打开不同的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41141499/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com