Python日期超过开始增量

2024-07-08 17:18:20 发布

您现在位置:Python中文网/ 问答频道 /正文

关于从文件开始的日期的问题,如何在给定的起始文件的情况下将日期增加一天。在

我的文件看起来像:

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通过一天从文件中得到下一个日期。 我的代码示例:

^{pr2}$

如果你能帮我解决这个问题。在

输出如下:

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()

Tags: datetimevarshowlinetvprogramfilm
1条回答
网友
1楼 · 发布于 2024-07-08 17:18:20

新建(此项捕获日期并适当增加日期)

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()

旧(未意识到您试图人为增加日期)

不确定为什么要用^{cd1>}使它复杂化?也许你在努力建造比我看到的更大的东西。

但是:

^{pr2}$

相关问题 更多 >

    热门问题