关于从文件开始的日期的问题,如何从文件开始给出日期,将日期增加一天。
我的文件如下:
13.12.2013.
06:00 ZMBT televoting
06:05 Madhubala, igrana serija, 138. epizoda, r.
06:50 Tajne, igrana serija, 55. epizoda, r.
07:30 Naša kuhinja
08:25 TV izlog
08:45 Bratzillaz, crtani film, 7. i 8. epizoda
08:55 ZMBT televoting
09:00 Prva dama, igrana serija, 89. epizoda
10:00 Štrumfovi, crtani film, 20. epizoda
10:30 Pčelica Maja, crtani film, 5. epizoda
10:52 Monster high, crtani film, 404. i 405. epizoda
10:55 Monsuno, crtani film, 20. epizoda
11:20 TV izlog
11:40 Tokovi novca
11:45 Vijesti
11:57 Biometeorološka prognoza
12:00 Madhubala, igrana serija, 138. epizoda, r.
12:50 Prva dama, igrana serija, 90. epizoda
13:50 Tajne, igrana serija, 55. epizoda
14:40 TV izlog
15:15 ZMBT televoting
15:20 Muzički program
15:45 ZMBT televoting
15:50 Karadayi, igrana serija, 68. epizoda
16:50 Po spisku, talk show
17:45 Krv nije voda, serijski program, 107. epizoda
18:39 International Health
18:49 Domaćica Ovako
19:00 Vijesti u 7, informativni program
19:28 Vremenska prognoza
19:29 Biometeorološka prognoza
19:31 Sport
19:38 Stanje na putevima
19:45 Tokovi novca
19:55 ZMBT televoting
20:00 Kolo sreće
20:05 Madhubala, igrana serija, 139. epizoda
21:05 ZMBT 6, show uživo
23:55 Sport centar
00:00 Dolina vukova, igrana serija, 97. i 98. epizoda
Reprizni program Hayat TV-a
01:55 ZMBT televoting
02:00 Vijesti u 7, informativni program
02:30 ZMBT 6, show
04:45 Muzički program
14.12.2013.
06:00 ZMBT televoting
06:05 Madhubala, igrana serija, 139. epizoda, r.
06:50 Takešijev dvorac, zabavno-sportski TV show
问题是当日期在午夜过去的同一天时,我怎样才能在00:00通过时从文件中获取下一个日期。 我的代码示例:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import sys
import re
import time
import glob
import logging
from datetime import datetime
import datetime
def get_date_time():
# Values for date
# Example : '''YYYY-MM-DD, YYYY-DD-MM, DD MM YYYY, MM DD YYYY'''
# Example of time : '''(00:00:00, 00:00, 0:00 -- 24 Time) | (00:00, 0:00 -- AM, PM)'''
######################################################################################
#Let's add some date/time examples
######################################################################################
# TS -> 05h
# Calculating time
# Open File for checking
input_file = open('date.txt','r')
# Open Output file for writting
output = open('date_change.txt','w')
for line in input_file:
# Let's take date with regex on example --> 1/6/2014 (MM-DD-YYYY), Time --> 24h (0:00| 00:00)
if re.search(r'\d{2}.\d{2}.\d{4}', line):
line_date1 = re.findall(r'\d{2}.\d{2}.\d{4}',line)[0]
else:
if not re.search(r'\d{2}.\d{2}.\d{4}',line):
line_date = ''
print line_date
# Start
if re.search(r'\d{2}:\d{2}.*',line):
line_start = re.findall(r'\d{2}:\d{2}',line)[0]
var2 = line_start+' '+line_date1
var = line_start
if var > '00:00':
var1 = var
Date = datetime.datetime.strptime(line_date1, "%d.%m.%Y")
EndDate = Date + datetime.timedelta(days=1)
print str(EndDate) + ' '+var1
else:
Date = datetime.datetime.strptime(line_date1, "%d.%m.%Y")
print str(Date)+' '+var1
get_date_time()
如果你能就这个问题给我一些帮助。
输出将是这样的:
13.12.2013. 06:00 ZMBT televoting
13.12.2013. 06:05 Madhubala, igrana serija, 138. epizoda, r.
13.12.2013. 06:50 Tajne, igrana serija, 55. epizoda, r.
13.12.2013. 07:30 Naša kuhinja
13.12.2013. 08:25 TV izlog
13.12.2013. 20:05 Madhubala, igrana serija, 139. epizoda
13.12.2013. 21:05 ZMBT 6, show uživo
13.12.2013. 23:55 Sport centar
14.12.2013. 00:00 Dolina vukova, igrana serija, 97. i 98. epizoda
14.12.2013. 01:55 ZMBT televoting
14.12.2013. 02:00 Vijesti u 7, informativni program
14.12.2013. 02:30 ZMBT 6, show
14.12.2013. 04:45 Muzički program
这是我的结果,我的意思是代码,它只是添加一些行。伙计们求救。如果有人需要帮助,这是我的代码:
def get_date_time():
# Values for date
# Example : '''YYYY-MM-DD, YYYY-DD-MM, DD MM YYYY, MM DD YYYY'''
# Example of time : '''(00:00:00, 00:00, 0:00 -- 24 Time) | (00:00, 0:00 -- AM, PM)'''
######################################################################################
#Let's add some date/time examples
######################################################################################
# TS -> 05h
# Calculating time
# Open File for checking
input_file = open('date.txt','r')
# Open Output file for writting
output = open('date_change.txt','w')
date = ""
var = ""
for line in input_file:
# Let's take date with regex on example --> 1/6/2014 (MM-DD-YYYY), Time --> 24h (0:00| 00:00)
if re.search(r'\d{2}.\d{2}.\d{4}.',line):
line_date = re.findall(r'\d{2}.\d{2}.\d{4}.',line)[0]
date = line_date
x = date
print date
if re.search(r'\d{2}:\d{2}.*', line):
line_start = re.findall(r'\d{2}:\d{2}', line)[0]
line_title = re.findall(r'\s\w*',line)[0]
global var_x
var_x = var + line_start
var2 = line_title
current_date = datetime.datetime.strptime(x, '%d.%m.%Y.')
new_date = current_date + datetime.timedelta(days=1)
if var_x < '06:00':
var1 = var_x
print >> output, str(new_date)+' '+var1+' '+var2+'\n'
else:
print >> output, str(current_date)+' '+var_x+' '+var2+'\n'
get_date_time()
答案 0 :(得分:0)
新功能(此功能可捕获日期并适当增加日期)
import re
import datetime
def get_date_time():
input_file = open('date.txt','r')
output = open('date_change.txt','w')
date = ""
currentDay = 1
currentHour = 0
dateobj = datetime.datetime.now()
for line in input_file:
if not line.isspace():
if re.match(r"\d{2}\.\d{2}\.\d{4}\.\s*", line):
dateset = line.split('.')
d = dateset[0]
currentDay = dateset[0]
m = dateset[1]
y = dateset[2]
dateobj = datetime.datetime.strptime(d+"."+m+"."+y, "%d.%m.%Y")
date = dateobj.strftime("%d.%m.%Y")
else:
h = re.findall(r"(\d{2}):\d{2}", line)
if h:
if h[0] < currentHour:
dateobj += datetime.timedelta(days=1)
date = dateobj.strftime("%d.%m.%Y")
currentHour = h[0]
output.write(date + " " + line)
print date + " " + line
output.close()
input_file.close()
get_date_time()
旧(没想到你试图人为增加日期)
不确定为何使datetime
复杂化?也许你正在努力建造比我在那里看到的更大的东西。
然而:
import re
def get_date_time():
input_file = open('date.txt','r')
output = open('date_change.txt','w')
date = ""
for line in input_file:
if not line.isspace():
if re.match(r"\d{2}\.\d{2}\.\d{4}\.\s*", line):
date = line.rstrip()
else:
output.write(date + " " + line)
output.close()
input_file.close()
get_date_time()