欢迎访问宙启技术站
智能推送

使用from_line()函数从文本文件中提取特定日期范围的行

发布时间:2023-12-26 23:37:00

from_line()函数是一个用来从文本文件中提取特定日期范围的行的函数。该函数需要接收三个参数,分别是文件名、开始日期和结束日期。以下是使用from_line()函数的一个示例:

假设我们有一个名为“data.txt”的文本文件,其中包含以下内容:

2020-01-01,This is line 1
2020-01-02,This is line 2
2020-01-03,This is line 3
2020-01-04,This is line 4
2020-01-05,This is line 5
2020-01-06,This is line 6

我们想要提取从2020-01-02到2020-01-04的行。可以使用如下代码来实现:

def from_line(filename, start_date, end_date):
    result = []
    with open(filename, 'r') as file:
        lines = file.readlines()
        for line in lines:
            date, content = line.strip().split(',')
            if start_date <= date <= end_date:
                result.append(content)
    return result

filename = "data.txt"
start_date = "2020-01-02"
end_date = "2020-01-04"
lines = from_line(filename, start_date, end_date)

for line in lines:
    print(line)

运行以上代码,输出结果如下:

This is line 2
This is line 3
This is line 4

代码解释:

首先,我们定义了一个名为from_line()的函数,它接收文件名、开始日期和结束日期作为参数。

在函数内部,我们创建一个空列表result,用来存储符合要求的行内容。

然后,我们使用open()函数打开文件,并使用readlines()方法读取文件中的所有行。

接下来,我们迭代每一行,使用strip()方法去除行首和行尾的空格,并使用split()方法以逗号为分隔符拆分日期和内容。

然后,我们检查当前行的日期是否在指定的日期范围内,如果是,则将该行的内容添加到result列表中。

最后,我们返回result列表。

在主程序中,我们调用from_line()函数,并传入所需的参数。得到返回的结果lines后,我们使用for循环逐行打印结果。