Файл не читается через file.read()?

вот код:
with  open ('C:/Users/abraham/Desktop/'+str(35657)+'.txt','w+') as f:
        text=f.read()+'\n'+str(input())
        print(str(text) + str(type(text)))
        f.write(text)

но после каждого чтения файла для последующей добавки введеного текста ,я получаю ничего , и мой файл составляет только "'\n'+str(input())" .ошибок никаких не выдает
  • Вопрос задан
  • 480 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Потому что весь контент файла удаляется, ибо флаг w+
w+ не дает возможность читать файл изначально. Открытие файла с таким флагом создаст его, если файл еще не существует, либо перезапишет его, если файл уже есть изначально.

Для чтения доступен только тот контент, который будет записан уже после открытия файла. Например, так

with open('test.txt','w+') as f:
    f.write('New content')
    f.seek(0)
    text=f.read()
    print(text)
# New content


А, ну и забыл добавить, если нужно просо записать в файл новый контент, при этом сохранив старый - нужно использовать специальный режим a (append)

# test.txt
# Old line
#

with open('test.txt','a') as f:
    f.write('New line')

with open('test.txt', 'r') as f:
    print(f.read())
# Old line
# New line
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы