【发布时间】:2018-04-02 07:15:11
【问题描述】:
我正在尝试从 .txt 文件中提取特定信息。我想出了一种方法来隔离我需要的线路;但是,打印它们已被证明是有问题的。
with open('RCSV.txt','r') as RCSV:
for line in RCSV.read().splitlines():
if line.startswith(' THETA'):
print(line.next())
当我使用 line.next() 时,它给了我这个错误:
"AttributeError: 'str' object has no attribute 'next'"
Here is a link to the .txt file
Here is a link to the area of the file in question
我要做的是提取以“THETA PHI”等开头的行之后的行。
【问题讨论】:
-
RCSV.read().splitlines()返回行列表。 -
你不能调用
line.next(),不仅仅是因为字符串没有next方法,而是因为字符串只是字符串;他们不知道他们来自迭代器。你想要调用next的东西是迭代器。如果您只是直接遍历文件(而不是将整个文件读入内存,然后将其拆分为行并将它们全部存储在一个列表中,只是为了获得文件已经给您的相同行),next(RCSV)会做那。虽然我不确定它是否真的是你想要的(通常不是)。 -
我昨天回答了一个非常相关的问题。 stackoverflow.com/questions/49599623/…