只读取文件的第一行?

如何使用Python只获取文件的第一行作为字符串?

445706 次浏览

这应该做到:

f = open('myfile.txt')
first = f.readline()
infile = open('filename.txt', 'r')
firstLine = infile.readline()

使用.readline()方法:

with open('myfile.txt') as f:
first_line = f.readline()

注意,除非它是文件中唯一的一行,否则f.readline()返回的字符串将包含一个尾随换行符。你可能希望使用

with open('myfile.txt') as f:
first_line = f.readline().strip('\n')

而是删除换行符。

fline=open("myfile").readline().rstrip()

这里有很多其他的答案,但要回答精确的你问的问题(在@MarkAmery去编辑原始问题并改变意思之前):

>>> f = open('myfile.txt')
>>> data = f.read()
>>> # I'm assuming you had the above before asking the question
>>> first_line = data.split('\n', 1)[0]

换句话说,如果您已经读取了文件(如您所说),并且内存中有一大块数据,那么为了有效地从其中获取第一行,只需对换行符执行split(),并从结果列表中获取第一个元素。

注意,这并不包括行末的\n字符,但我假设你无论如何都不想要它(单行文件甚至可能没有一个)。还要注意的是,尽管它非常简短和快速,但它确实复制了数据,所以对于一个非常大的内存块,您可能不会认为它是“有效的”。一如既往,这取决于……

要返回打开文件的开头,然后返回第一行,请执行以下操作:

my_file.seek(0)
first_line = my_file.readline()
first_line = next(open(filename))

如果你想读取file。txt

line1 helloworld

import linecache
# read first line
print(linecache.getline('file.txt'), 1)
>helloworld