每次运行python时都会有新的文件名
使用python 2.7 我使用下面的命令将所有打印输出发送到名为output.log的文件。如何让它每次运行时都发送到不同的文件…在bash中,我们可以声明一个名为date或其他变量,并拥有文件名的这一部分…那么如何使用python实现同样的效果呢 所以我的问题是每次运行python时都会有新的文件名,python,python-2.7,Python,Python 2.7,使用python 2.7 我使用下面的命令将所有打印输出发送到名为output.log的文件。如何让它每次运行时都发送到不同的文件…在bash中,我们可以声明一个名为date或其他变量,并拥有文件名的这一部分…那么如何使用python实现同样的效果呢 所以我的问题是 每次运行下面的脚本时,我的文件都应该有一个命名约定output_date/time.log 另外,我如何删除文件命名约定为output.*.log的早于X天的文件 import sys f = open('output.log',
import sys
f = open('output.log', 'w')
sys.stdout = f
print "test"
f.close()
由于个人对格式的偏好,这通常是我所做的
import time
moment=time.strftime("%Y-%b-%d__%H_%M_%S",time.localtime())
f = open('output'+moment+'.log', 'w')
至于自动删除,您希望在运行测试时删除它吗os.remove(fileStringName)
工作,你只需要做算术和字符串转换。我会使用os.listdir(pathToDirWithOutputLogs)遍历文件名,并对其进行计算,然后对旧文件名调用os.remove。获取日期/时间:
from time import gmtime, strftime
outputFileName = "output_#.log"
outputFileName = outputFileName.replace("#", strftime("%Y-%m-%d_%H:%M:%S", gmtime()))
对于数字递增:
outputFileName = "output #.log"
outputVersion = 1
while os.path.isfile(outputFileName.replace("#", str(outputVersion))):
outputVersion += 1
outputFileName = outputFileName.replace("#", str(outputVersion))
要删除超过某个日期的文件,可以使用“``遍历目录中的所有文件,然后使用os.remove()
删除它们。您可以在解析它们之后执行此操作
lastTime = "2015-08-03_19:04:41"
for fn in filter(os.path.isfile, os.listdir()):
strtime = fn[fn.find("_"):fn.rfind(".")]
if strtime < lastTime:
os.remove(fn)
lastTime=“2015-08-03\u 19:04:41”
对于过滤器中的fn(os.path.isfile,os.listdir()):
strtime=fn[fn.find(“”):fn.rfind(“.”)
如果strtime
查找时间
和日志
模块。