我有许多文本文件,其布局如下,
heading
subheading
info1
info2
info3
其中每行的字符数因文件而异。对于每个文件,我想将第2行存储为Python变量。
我可以将整个文件加载到变量
中with open('data.txt', 'r') as myfile:
data=myfile.read().replace('\n', '')
但我不确定如何指定只读第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', '')