Як би ви отримали лише перший рядок файлу у вигляді рядка з Python?
Як би ви отримали лише перший рядок файлу у вигляді рядка з Python?
Відповіді:
Скористайтеся .readline()
методом ( Python 2 docs , Python 3 docs ):
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]
Іншими словами, якщо ви вже читали у файлі (як ви вже сказали), і у вас є великий блок даних у пам'яті, то щоб отримати перший рядок з нього ефективно, зробіть розділення () на символі нового рядка, один раз лише, і візьміть перший елемент із отриманого списку.
Зауважте, що це не включає \n
символ у кінці рядка, але я припускаю, що ви його все одно не хочете (а однорядний файл може навіть не мати його). Також зауважте, що, хоча вона досить коротка і швидка, вона робить копію даних, тому для дійсно великої кількості пам'яті ви не можете вважати це "ефективним". Як завжди, це залежить ...
.read()
потрібно викликати першим.
f1 = open("input1.txt", "r")
print(f1.readline())