Как отобразить от 1 до 10, используя операции с файлами Python 3 и l oop? - PullRequest
0 голосов
/ 19 марта 2020

Ниже приведен мой код в python 3. Я пытаюсь напечатать от 1 до 10, используя python файловые операции и l oop.

for i in range(1, 11):
    file = open('text.txt', 'a+')
    file.write(str(i))
    file.write('\n')
    content = file.read()
    print(content)
    file.close()

Вместо печати от 1 до 10 он печатает ничего. вот фото выхода . Что не так с этим кодом, и есть ли лучший способ написать этот код?

1 Ответ

0 голосов
/ 19 марта 2020

После того, как вы что-то записали в файл, указатель файла будет указывать на конец файла. На данный момент вы пытаетесь прочитать из файла, но нет данных, начиная с этого места. Следовательно, вы получите пустой вывод. Однако ваш код успешно выполнит запись в файл (вы можете открыть файл и проверить).

Лучший способ - сначала записать файл, а затем прочитать его.

A логичным решением было бы go вернуться на одну строку после каждой записи и прочитать то, что вы только что написали. К сожалению, это может привести к состоянию гонки, и python не позволит вам сделать это. Интересно, что вы можете искать начало файла, используя file.seek(0, os.SEEK_SET) после каждой записи, и читать содержимое от начала до конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...