如何修改 python 脚本尝试写入日志的默认位置

How to modify the default location where the python script is trying to write the log

有一个 python 脚本,在执行某些评估时,我必须在后台 运行 执行该脚本。但是,脚本会尝试在整个过程中保存一些日志,并且由于我必须 运行 在我没有 sudo 权限的机器上,脚本不会被执行。

我认为导致问题的行是:

parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(tempfile.gettempdir(), "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")

我想我需要更改默认位置:default=os.path.join(tempfile.gettempdir(), "log-name.log")。如何使输出路径成为我的主目录中的文件夹。在那里我不会得到任何与特权升级相关的问题。

我想你可以这样做:

_OUTPATH = 'Users/username/logs'
...
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(_OUTPATH, "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")

从环境中提取您的主目录:

from os.path import expanduser
homedir = expanduser("~")
parser.add_option("-L", "--logfile", dest="logfile", default=os.path.join(homedir, "log-name.log"), help="log messages to LOGFILE [default: %default]", metavar="LOGFILE")

此外,您可以尝试在日志文件的名称中添加时间戳,以免意外覆盖现有日志。