Python 如何按日期范围更新打印行

Python 如何按日期范围更新打印行,python,file,Python,File,问题更新: 我通过雷达应答解决了这个问题。 问题是,若我的文件中有两个或更多相同的日期,我如何打印内容,如何比较后面的行和行 文件更新: 问题结束更新 我的程序必须打印日期范围内的所有行。 我的文件如下所示: 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

问题更新: 我通过雷达应答解决了这个问题。 问题是,若我的文件中有两个或更多相同的日期,我如何打印内容,如何比较后面的行和行

文件更新:

问题结束更新

我的程序必须打印日期范围内的所有行。 我的文件如下所示:

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函数来比较日期并将其打印出来,但我找不到它。

我想您知道如何从文件进程中读取数据,但主要问题是如何将字符串转换为日期并对其进行比较,因此下面介绍如何使用:

[1]中的
:导入日期时间
在[2]中:my_date=datetime.datetime.strtime(“2015年12月24日,“%d/%m/%Y”)#字符串#u to_date
在[3]:我的约会
Out[3]:datetime.datetime(2015,12,24,0,0)
[4]:my_date_2=datetime.datetime.strtime(“2015年12月28日,“%d/%m/%Y”)
[5]:我的约会<我的约会2
Out[5]:对

使用
strtime
将字符串转换为datetime,并使用
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)
导入csv
从日期时间导入日期时间
开始=日期时间(2015年12月28日)
结束=日期时间(2015年12月30日)
以open(“data.txt”、“r”)作为f:
r=csv.reader(f,分隔符=“|”)
对于r中的行:
lineDate=datetime.strTime(第[0]行,%d/%m/%Y”)

如果开始,则需要使用将字符串转换为可比较的日期对象。使用
time.strtime(dateAsString,“%d/%m/%Y”)
转换,然后使用
date1提供一些建议。1) 如果您正在设置搜索开始/结束日期,您可以使用例如:
start=datetime(2015,12,28)
而不是使用
date.strtime
,2)进行比较时,您可以使用Python允许操作符链接的事实,这样您就可以使用
if start@Jon Clements,谢谢您的建议,非常有用,请随意使用这些(如果您愿意)更新您的答案-将来可能对其他人有用-谁知道:)我更新了问题,您能帮我解决这个小问题吗?@XpreSS,如果有多个日期,您是否只想打印第一个日期?
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
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)