如何打印日期范围更新

时间:2016-01-01 21:19:16

标签: python file

问题更新: 我通过雷达回答解决了这个问题。 问题是如果我在文件中有2个或更多相同的日期,我怎么能打印一些东西,我怎么能比较线后的线?

文件更新:

25/12/2015|5940.0
25/12/2015|5720.0
25/12/2015|8404.0
26/12/2015|9229.0
27/12/2015|8380.0
27/12/2015|6998.5
27/12/2015|10667.0
28/12/2015|8720.0

结束问题更新!

我的程序必须打印我日期范围内的所有行。 我的文件看起来像这样:

24/12/2015|5940.0
25/12/2015|5720.0
26/12/2015|8404.0
27/12/2015|9229.0
28/12/2015|8380.0
29/12/2015|6998.5
30/12/2015|10667.0
31/12/2015|8720.0

第一个日期是2015年12月28日,结束日期是2015年12月30日。

预期:

28/12/2015 ---> 8380.0
29/12/2015 ---> 6998.5
30/12/2015 ---> 10667.0

同样在我的档案中会有相同的日期。 我听说我可以用一些python函数比较日期并打印出来,但是我找不到它。

2 个答案:

答案 0 :(得分:2)

使用strptime将字符串转换为日期时间并使用csv模块读取文件数据

import csv
from datetime import datetime

start = datetime(2015, 12, 28)
end   = datetime(2015, 12, 30)

with open("data.txt", "r") as f:
   r = csv.reader(f,delimiter ="|")


   for line in r:
      lineDate = datetime.strptime(line[0],"%d/%m/%Y")
      if start <= lineDate <=end :
         print("{0} ---> {1}".format(*line)

答案 1 :(得分:0)

我想您知道如何从文件进程中读取,但主要问题是如何将字符串转换为日期并进行比较,因此以下是使用strptime将字符串作为日期进行比较的方法:

In [1]: import datetime

In [2]: my_date = datetime.datetime.strptime("24/12/2015","%d/%m/%Y") #string_to_date

In [3]: my_date
Out[3]: datetime.datetime(2015, 12, 24, 0, 0)

In [4]: my_date_2 = datetime.datetime.strptime("28/12/2015","%d/%m/%Y")

In [5]: my_date < my_date_2 
Out[5]: True