从txt文件Python打印两个日期之间的行

2024-09-30 16:42:22 发布

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

我有“事务处理.txt“这样的文件:

1:5:iznos:15.02.2017.:usser
2:2:iznos:17.02.2017.:usser2
3:3:iznos:3.04.2017.:usser2
4:3:iznos:3.04.2017.:useer
5:7:iznos:5.05.2017.:usser2
6:3:iznos:16.06.2017.:usser3
7:8:iznos:18.06.2017.:usser

功能如下:

^{pr2}$

如何打印两个输入日期之间的交易记录?

稍后我必须输入两个日期和用户名,然后打印两个日期之间的事务处理,只针对特定的用户名。所以,如果有人能帮我。。。:)


Tags: 文件功能txt记录交易用户名pr2useer
2条回答

首先,您需要读取数据;其次,您需要从每一行提取日期;第三,您需要检查日期是否在所需的范围内;因此解决方案是:

with open('transactions.txt') as f:
    for line in f:
        l_date = date.strptime(line.split(':')[3], "%d.%m.%Y.")
        if date1 < l_date < date2:
            print line

你可以试试这样的方法:

from csv import reader
from io import StringIO  
from datetime import datetime


text = '''1:5:iznos:15.02.2017.:usser
2:2:iznos:17.02.2017.:usser2
3:3:iznos:3.04.2017.:usser2
4:3:iznos:3.04.2017.:useer
5:7:iznos:5.05.2017.:usser2
6:3:iznos:16.06.2017.:usser3
7:8:iznos:18.06.2017.:usser'''


from_date = datetime(2017, 4, 3)
to_date = datetime(2017, 5, 5)

# with open('data.txt', 'r') as file
with StringIO(text) as file:

    data = reader(file, delimiter=':')

    for line in data:
        date = datetime.strptime(line[3], '%d.%m.%Y.')

        if from_date <= date <= to_date:
            print(line)

相关问题 更多 >