Как Вы получили бы только первую строку файла как строка с Python?
Use the .readline()
method (Python 2 docs, Python 3 docs):
with open('myfile.txt') as f:
first_line = f.readline()
Some notes:
f.readline()
will contain a trailing newline. You may wish to use f.readline().strip()
instead to remove the newline.with
statement automatically closes the file again when the block ends.with
statement only works in Python 2.5 and up, and in Python 2.5 you need to use from __future__ import with_statement
infile = open('filename.txt', 'r')
firstLine = infile.readline()
This should do it:
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
в конце строки, но я предполагаю, что он вам все равно не нужен ( а однострочный файл может даже не иметь его). Также обратите внимание, что хотя он довольно короткий и быстрый, он делает копию данных, поэтому для действительно большого блока памяти вы можете не считать его «эффективным». Как всегда, это зависит от ...
Чтобы вернуться к началу открытого файла и затем вернуть первую строку, сделайте следующее:
my_file.seek(0)
first_line = my_file.readline()