更改python子进程内的输出日志文件名以使其唯一
我正在使用python子进程将日志文件通过电子邮件发送给运行python脚本的用户。但是,每次用户运行脚本时,日志文件都会被覆盖。以下是我在python代码中使用的unix子进程命令:更改python子进程内的输出日志文件名以使其唯一,python,subprocess,Python,Subprocess,我正在使用python子进程将日志文件通过电子邮件发送给运行python脚本的用户。但是,每次用户运行脚本时,日志文件都会被覆盖。以下是我在python代码中使用的unix子进程命令: subprocess.Popen("mail -s 'logfile.log attached' -r az12@abc.com -a logfile.log $USER@abc.com &> /dev/null",shell=True) 如何使日志文件名唯一?可能会将日志文件名增加为logfil
subprocess.Popen("mail -s 'logfile.log attached' -r az12@abc.com -a logfile.log $USER@abc.com &> /dev/null",shell=True)
如何使日志文件名唯一?可能会将日志文件名增加为logfile1.log、logfile2.log等等
诀窍是如何在子流程内部实现这一点 尝试使用
时间戳
生成日志文件名。关于在子流程中使用该命令,该命令只不过是一个字符串。因此,它很简单
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)
尝试使用
时间戳
生成日志文件名。关于在子流程中使用该命令,该命令只不过是一个字符串。因此,它很简单
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)
您还可以使用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
您也可以使用日期时间模块执行此操作:
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