1

大家好,我在输出带有时间戳的文件时遇到了一点问题,这是我的代码

input_file  = open('DVBSNOOP/epg_slo_sort.txt', "r") # read
output_file = open('SORT/epg_slo_xml.txt', "w") # write 

for line in input_file:
    line = re.sub(r"\d{8}:|\d{7}:|\d{6}:|\d{5}:|\d{4}:","", line) # remove nubers from start line example --> 10072633: etc...
    line = line.replace("[=  --> refers to PMT program_number]","").replace("Service_ID:","Program") # remove =  --> refers to PMT program_number] and replace Service_ID to Program
    line = line.replace("0xdce","").replace("Start_time:","Start") # remove 0xdce and change Start_time to start
    line = line.replace("0x0","") # remove 0xdce 
    line = line.replace("event_name:","Title") # change to Title from event_name
    line = line.replace("Program: 14 (00e)","") # remove program 14 does not exist
    line = line.replace("-- Charset: ISO/IEC 8859  special table","") # remove -- Charset: ISO/IEC 8859  special table
    line = line.replace("-- Charset: ISO/IEC   special table","")# remove -- Charset: ISO/IEC   special table
    line = line.replace("[=","").replace("]","") # remove [=]
    line = line.replace("Duration:","Duration").replace("0x00","").replace("0x000","").replace("0x","")
    line = line.replace('"..',"").replace('"',"").replace(" . . .","").replace("-","") # remove ".."
    line = re.sub(r"Start: \d{2}|\d{4}|\d{3}|\d{7}\d{9}\d{6}","",line) # remove numbers after
    line = re.sub(r"Duration: \d{2}|\d{6}|\d{7}|d{5}\d{8}\d{4}|\d{3}|\d{9}","Duration",line) # remove numbers affter data
    line = re.sub(r"^//","",line) # remove / /
    line = re.sub(r"\([^)]*\)","",line) # remove brackets
    line = re.sub(r"Program 14","",line) # remove program 14
    output_file.write(line) # write to file

我希望我的输出像epg_slo_sort(M;D;Y:Time).txt.

4

2 回答 2

5

要生成带有时间戳的文件名,请使用strftime()time模块以必要的格式获取时间并将其与文件名模式连接:

import time
current_time = time.strftime("%m.%d.%y %H:%M", time.localtime())
output_name = 'SORT/epg_slo_xml%s.txt' % current_time
output_file = open(output_name, "w")
于 2013-09-18T09:41:02.420 回答
1

这是你要找的吗?它以您指定的格式返回一个字符串,其中包含您想要的时间信息:

 import time
 tme=time.localtime()
 timeString=time.strftime("%m,%d,%y,%H:%M:%S", tme)

现在您需要的只是按照您想要的方式对其进行格式化并附加到文件名中。有很多方法可以做到这一点,一个非常粗略但有效的方法是:

 outFileName='epg_slo_xml'+timeString+'.txt'

另一种方法是做这样的事情:

outFileName='epg_slo_xml{}.txt'.format(timeString)

但这仅适用于 Python 2.7 及更高版本。我(还)不使用它,但我想 Python 3.X 是相似的。

于 2013-09-18T09:24:11.340 回答