我正在使用python subprocess将日志文件发送给运行python脚本的用户。但是每次用户运行脚本时,日志文件都会被覆盖。这是我在python代码中使用的unix子进程命令:
subprocess.Popen("mail -s 'logfile.log attached' -r az12@abc.com -a logfile.log $USER@abc.com &> /dev/null",shell=True)
如何使日志文件名称唯一?也许增加logfile名称为logfile1.log,logfile2.log等等?
Trick是如何在子进程内实现的?
答案 0 :(得分:3)
您也可以使用datetime模块执行此操作:
import datetime
filename = "logfile-%s.log" % datetime.datetime.today().isoformat()
command = "mail -s '{0} attached' -r az12@abc.com -a {0} $USER@abc.com &> /dev/null".format(filename)
subprocess.Popen(command, shell=True)
日志文件的名称将显示为logfile-2015-03-13T21:37:14.927095.log
。
答案 1 :(得分:1)
尝试使用timestamp
生成日志文件名。关于在子进程中使用那个,命令只是一个字符串。所以它就像
import time
fileName = "logfile." + str(time.time()) + ".log" # use your logic to generate logFile name.
command = "mail -s '%s attached' -r az12@abc.com -a %s $USER@abc.com &> /dev/null" %(fileName, fileName)
subprocess.Popen(command,shell=True)