Подтвердить что ты не робот

Читайте только первую строку файла?

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

4b9b3361

Ответ 1

Используйте метод .readline() (документы Python 2, документы Python 3):

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

Некоторые заметки:

  1. Как отмечено в документации, если это не единственная строка в файле, строка, возвращаемая f.readline() будет содержать завершающий f.readline() новой строки. Вы можете использовать f.readline().strip() для удаления новой строки.
  2. Оператор with автоматически закрывает файл снова, когда блок заканчивается.
  3. Оператор with работает только в Python 2.5 и выше, а в Python 2.5 вам нужно использовать from __future__ import with_statement
  4. В Python 3 вы должны указать кодировку файла для открываемого файла. Прочитайте больше...

Ответ 2

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

Ответ 3

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

Ответ 4

Это должно сделать это:

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

Ответ 5

Здесь есть много других ответов, но чтобы точно ответить на заданный вами вопрос (до того, как @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

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

my_file.seek(0)
first_line = my_file.readline()

Ответ 7

first_line = next(open(filename))

Ответ 8

Решение 1:

Вывести первые N строк. Замените N на любое число. Если вы хотите первую строку, то N = 1

from itertools import islice

with open('my_file.txt','r') as my_file:
        #first_line=my_file.readline()
        #print(first_line)
        head = list(islice(my_file, N))
        print(head)

Это эквивалентно код команды UNIX head

Решение 2:

with open('input.txt', 'r') as fin:
    head, tail = fin.read().split('\n', 1)
    print(head)
    #print(tail)

Ответ 9

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