Замените одну строку файла в Python, не загружая весь файл в память.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Замените одну строку файла в Python, не загружая весь файл в память.

Сообщение Anonymous »

Используя Python, я хотел бы заменить одну строку текстового файла на основе его позиции, не загружая весь файл в память (например, используя метод readlines).
Я пытался написать код, который использует цикл for для вычисления позиции, с которой следует начать запись новой строки, но заканчивается перезаписью и следующих строк.
Для ясности, вот код, который работает с использованием строк чтения:
р>
def write_a_line(line:int, val:str):
with open("myfile.txt", "r+") as f:
mylist = f.readlines()
mylist[line-1] = f"{val}\n"
f.seek(0)
f.writelines(mylist)

Вместо этого не работает:
def write_a_line_2(line:int,val:str):
with open("myfile.txt", "r+") as f:
count = 0
for i in range(line):
count += len(f.readline())
f.seek(count)
f.write(f"{val}\n")


Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-memory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»