Ответ 1
Здесь есть две причины, по которым вы столкнулись с проблемами. Во-первых, вы создали fo
только в режиме записи. Вам нужен файловый объект, который может читать и писать. Вы также можете использовать ключевое слово with
для автоматического уничтожения объекта файла после его завершения, вместо того, чтобы беспокоиться о его закрытии вручную:
# the plus sign means "and write also"
with open("foo.txt", "r+") as fo:
# do write operations here
# do read operations here
Во-вторых, (например, что вы вставляете очень сильно) объект файла fo
, объект текстового файла, не имеет метода next
. Вы используете учебник, написанный для Python 2.x, но вы используете Python 3.x. Это не будет хорошо для вас. (Я считаю, что next
был/может быть действителен в Python 2.x, но он не в 3.x.) Скорее, наиболее похоже на next
в Python 3.x readline
, например:
for index in range(7):
line = fo.readline()
print("Line No %d - %s % (index, line) + "\n")
Обратите внимание, что это будет работать, только если файл имеет не менее 7 строк. В противном случае вы столкнетесь с исключением. Более безопасный и простой способ итерации через текстовый файл состоит из цикла for:
index = 0
for line in file:
print("Line No %d - %s % (index, line) + "\n")
index += 1
Или, если вы хотите получить немного больше pythonic, вы можете использовать функцию enumerate:
for index, line in enumerate(file):
print("Line No %d - %s % (index, line) + "\n")