Только для чтения первая строка файла?

Как Вы получили бы только первую строку файла как строка с Python?

181
задан martineau 29 October 2016 в 16:49
поделиться

6 ответов

Use the .readline() method (Python 2 docs, Python 3 docs):

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

Some notes:

  1. As noted in the docs, unless it is the only line in the file, the string returned from f.readline() will contain a trailing newline. You may wish to use f.readline().strip() instead to remove the newline.
  2. The with statement automatically closes the file again when the block ends.
  3. The with statement only works in Python 2.5 and up, and in Python 2.5 you need to use from __future__ import with_statement
  4. In Python 3 you should specify the file encoding for the file you open. Read more...
309
ответ дан 23 November 2019 в 06:09
поделиться
infile = open('filename.txt', 'r')
firstLine = infile.readline()
20
ответ дан 23 November 2019 в 06:09
поделиться
fline=open("myfile").readline().rstrip()
17
ответ дан 23 November 2019 в 06:09
поделиться

This should do it:

f = open('myfile.txt')
first = f.readline()
9
ответ дан 23 November 2019 в 06:09
поделиться

Здесь много других ответов, но чтобы ответить именно на заданный вами вопрос (до того, как @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 в конце строки, но я предполагаю, что он вам все равно не нужен ( а однострочный файл может даже не иметь его). Также обратите внимание, что хотя он довольно короткий и быстрый, он делает копию данных, поэтому для действительно большого блока памяти вы можете не считать его «эффективным». Как всегда, это зависит от ...

6
ответ дан 23 November 2019 в 06:09
поделиться

Чтобы вернуться к началу открытого файла и затем вернуть первую строку, сделайте следующее:

my_file.seek(0)
first_line = my_file.readline()
9
ответ дан 23 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: