从文本fi中读取

2024-09-28 21:39:58 发布

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

我不是在这里寻找答案,而是我应该如何完成这项任务的指导方针。在

我有一个包含以下信息的txt文件:

...
    1947q2        -0.6
    1947q3        -0.3
    1947q4         6.2
    1948q1         6.5
    1948q2         7.6
    1948q3         2.2
    1948q4         0.6
...

我的目标是能够阅读基于关键字选择的文本文件。例如,我想读取仅包含1947的行,因此输出如下:

^{pr2}$

因为数字与每年相关联,所以我想把每一行放入一个元组中,然后将所有元组组合成一个列表。从这个列表中,使用正则表达式搜索列表以获取匹配的元组并相应地打印出来。在

这样做是可以接受的吗?有没有更简单更明显的解决办法?不是真的在寻找最佳方法,而是在如何解决这个问题上有不同的想法。在


Tags: 文件方法答案txt信息目标列表数字
3条回答
import sys
with open('file.txt') as f:
  for line in f:
    if '1947' in line: # or some complex regular expressions test
      sys.stdout.write(line)

您只需解析for循环体中的每一行,然后决定是否接受它。如果你想搞怪,可以看看map和{a2}。^{}语句确保文件随后关闭。在

您可以做的一件事是use generators使用与您已经做过的类似的方法动态筛选出列表中的成员:

data = open("file.txt")
fortysevens = (line for line in data if contains_47(line))
for line in fortysevens:
    # do something here

def contains_47(line):
    # your existing code here to detect if a line contains 47

你的关键词总是“年”吗?如果是这样的话,我会把它们储存在这样的字典里:

mydata[year][quarter] = value

所以您可以通过mydata['1947']获取示例数据。在

要读取文件,您可能需要使用csv.reader,然后拆分“q”上的第一列,分别获得年份和季度。在

相关问题 更多 >