Как бы вы получили только первую строку файла в виде строки с 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_statementmod_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())