从文本文件中读取特定行到Python变量?

时间:2018-03-02 14:30:06

标签: python

我有许多文本文件,其布局如下,

heading
subheading
info1
info2
info3

其中每行的字符数因文件而异。对于每个文件,我想将第2行存储为Python变量。

我可以将整个文件加载到变量

with open('data.txt', 'r') as myfile:
    data=myfile.read().replace('\n', '')

但我不确定如何指定只读第2行。

2 个答案:

答案 0 :(得分:2)

您不需要阅读整个文件,只需要之前的行。最简单的方法是使用itertools模块。

with open('data.txt', 'r') as myfile:
    data = next(itertools.islice(myfile, 1, None))

切片通过可迭代myfile的结尾生成元素1(元素0是第一行)。 next只是从该可迭代中生成下一个可用项,为您提供第2行。

(我不知道重复项中的linecache模块;这是解决当前问题的更好解决方案。)

答案 1 :(得分:1)

您可以使用readline功能一次读取一行:

with open('data.txt', 'r') as myfile:
    line1=myfile.readline()
    data=myfile.readline().replace('\n', '')

对于某些任意行,您可以遍历文件,直到到达该行:

with open('data.txt', 'r') as myfile:
    dataline = 4 # any number less than or equal to the number of lines in the file
    for line in range(dataline - 1):
        myfile.readline()
    data=myfile.readline().replace('\n', '')