Как вы получите только первую строку файла в виде строки с Python?
Читайте только первую строку файла?
Ответ 1
Используйте метод .readline()
(документы Python 2, документы Python 3):
with open('myfile.txt') as f:
first_line = f.readline()
Некоторые заметки:
- Как отмечено в документации, если это не единственная строка в файле, строка, возвращаемая
f.readline()
будет содержать завершающийf.readline()
новой строки. Вы можете использоватьf.readline().strip()
для удаления новой строки. - Оператор
with
автоматически закрывает файл снова, когда блок заканчивается. - Оператор
with
работает только в Python 2.5 и выше, а в Python 2.5 вам нужно использоватьfrom __future__ import with_statement
- В 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())