@Davidd2008

Как в существующий файл дописать текст в python?

у меня есть txt файл в котором есть такой текст:
dakdasjlkas:dsadsakj54fsf
dakdasjlkas:dsadsakj54fsf
adsdasjlkas:dsadsakj545sf
как мне дописать в конец каждой стрки какой-то текст?

я пробовал вот-так но этот флаг дописывает на новых строках :(
for i in range(3):
    with open('1.txt', 'a') as file:
        file.write('input')
  • Вопрос задан
  • 2062 просмотра
Решения вопроса 1
@lob4Noff
text = 'input' # фраза, которая будет дописана в конец строки
output = '' # инициализация результирующего текста

with open('1.txt', 'r') as file:
    for line in file: # считывание текущего файла
        output += (line.replace('\n', '') + text + '\n')

with open('1.txt', 'w') as file:
    file.write(output) # перезапись файла
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Vindicar
@Vindicar
RTFM!
В конец каждой строки - никак. Сам подумай, в файле никаких строк нет, это последовательность байт. Просто некоторые программы эту последовательность разбивают на участки по символу перевода строки.
Так что чтобы вставить что-то в середину файла, пришлось бы сместить вперёд всё содержимое файла после этого места.

Проще сделать иначе: создать новый файл рядом со старым, прочитать построчно старый, записать изменённые строки в новый. А потом удалить старый и переименовать новый в старый.

Насчёт последней части посмотри модуль os, в частности, os.unlink() и os.rename().
Ответ написан
Комментировать
LazyTalent
@LazyTalent
Data Engineer, Freelancer
1. Прочесть файл
2. Пройтись по всем строкам и дописать значение
3. Сохранить новые данные в новый файл
Ответ написан
Комментировать
@otolaa
def log_add(text, type = 'log'):
    ''' add login files '''
    with open(f'./json/{type}.txt', "a", encoding='utf8') as f:
        f.write(f'{text}\n')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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