我正在执行一个包含不同参数的程序。我需要在命令行中准确跟踪程序提供的参数。我正在维护一个日志文件,我需要存储这些已发出的命令alogwith结果的摘要。
例如,我可以在不同的时间发出以下命令。$python myprog.py -i input.txt -o output.txt -x 2 -y 3 -z 9
$python myprog.py input.txt -o output.txt -x 2 -z 9
$python myprog.py -i input.txt -o output.txt -x 2 -y 3
$python myprog.py -i input.txt -o output.txt -z 9
如何将这些命令存储到我的日志文件中?
我这样做是因为我可能需要使用完全相同的选项重新执行相同的程序。
答案 0 :(得分:2)
您可以使用模块sys
将所有参数作为列表argv
获取。
要将它们记录到文本文件,您可以使用以下代码:
import sys
logfile = open("logfile.txt", "w")
logfile.write(" ".join(sys.argv))
logfile.close()
答案 1 :(得分:2)
您可以使用logging module:
import logging
import sys
logger = logging.getLogger(__name__)
if __name__ == '__main__':
logging.basicConfig(filename = '/tmp/command.log', level = logging.INFO,
format = '%(asctime)s %(message)s',
datefmt = '%Y-%m-%d %H:%M:%S')
logger.info(sys.argv)
答案 2 :(得分:0)
您可以从sys.argv
捕获程序中的参数,并将它们附加到日志文件中。
import datetime
import sys
if __name__ == '__main__':
now = datetime.datetime.now().ctime()
with open('logfile', 'a') as log:
log.write("Invoked at %s with args: %s\n" % (now, sys.argv)