更改python子进程内的输出日志文件名以使其唯一

更改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

我正在使用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)
如何使日志文件名唯一?可能会将日志文件名增加为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