Как бы вы получили только первую строку файла в виде строки с Python?
Как бы вы получили только первую строку файла в виде строки с Python?
Ответы:
С помощью .readline()
метода ( Python 2 документов , Python 3 документов ):
with open('myfile.txt') as f:
first_line = f.readline()
Некоторые заметки:
f.readline()
будет содержать завершающий символ новой строки. Вы можете использовать f.readline().strip()
вместо этого, чтобы удалить новую строку.with
Оператор автоматически закрывает файл снова , когда концы блока.with
работает только в Python 2.5 и выше, а в Python 2.5 вам нужно использоватьfrom __future__ import with_statement
mod_wsgi
).
infile = open('filename.txt', 'r')
firstLine = infile.readline()
with
лучше.
fline=open("myfile").readline().rstrip()
rstrip()
удаляет символ новой строки.
Это должно сделать это:
f = open('myfile.txt')
first = f.readline()
Чтобы вернуться к началу открытого файла и затем вернуть первую строку, сделайте следующее:
my_file.seek(0)
first_line = my_file.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
символ в конце строки, но я предполагаю, что вы все равно не хотите его (и однострочный файл может даже не иметь его). Также обратите внимание, что, хотя он довольно короткий и быстрый, он делает копию данных, поэтому для действительно большого куска памяти вы можете не считать его «эффективным». Как всегда, это зависит ...
.read()
должно быть названо первым.
f1 = open("input1.txt", "r")
print(f1.readline())