只读取文件的第一行?

你如何获得一个文件的第一行作为Python的string?

使用.readline()方法( Python 2文档 , Python 3文档 ):

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

一些说明:

  1. 正如在文档中指出的那样,除非它是文件中的唯一行,否则从f.readline()返回的string将包含尾随换行符。 您可能希望使用f.readline().strip()来删除换行符。
  2. with语句在块结束时再次自动closures文件。
  3. with语句只能在Python 2.5及以上版本中运行,而在Python 2.5中,您需要使用from __future__ import with_statement
  4. 在Python 3中,您应该为打开的文件指定文件编码。 阅读更多…
 infile = open('filename.txt', 'r') firstLine = infile.readline() 
 fline=open("myfile").readline().rstrip() 

要回到打开文件的开头,请执行以下操作:

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

这应该做到这一点:

 f = open('myfile.txt') first = f.readline() 

在这里有很多其他的答案,但要回答你所问的问题(@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字符,但我假设你不想要它(和单行文件可能甚至没有一个)。 还要注意,虽然它非常简短,但它确实复制了数据,所以对于一个非常大的内存块,您可能不会认为它是“高效的”。 一如既往,这取决于…

 f1 = open("input1.txt", "r") print(f1.readline())