Найти - Пользователи
Полная версия: Как записать текст в файл не поверх имеющегося текста, а сдвигая его?
Начало » Python для новичков » Как записать текст в файл не поверх имеющегося текста, а сдвигая его?
1
buddha
Вот например python3.3:
file = open('some.txt', 'w+')
text = '''
Первая строка
ВТорая строка
Третья строка
Четверта строка
'''
file.write(text)
file.seek(text.find('Третья'))
text2 = 'ааапп кук вкасвки 21312312313dddddddddd'
file.write(text2)
file.seek(0)
print(file.read())

получается text2 накладывается на строки: “Третья строка
Четверта строка”, как писать, чтобы эти строки отодвигались? Неужели отрезать этот кусок, вписывать , что нужно, а потом вырезанный кусок вставлять на место?
sergeek
нет, обычно полностью перезаписывают . Как ты себе представляшь отодвигание строк в памяти?
buddha
Сделал вот так:
file = open('some.txt', 'w+')
text = '''
Первая строка
ВТорая строка
Третья строка
Четверта строка
'''
file.write(text)
file.seek(text.find('Третья')+1)
file_chunk = file.read()
file.seek(text.find('Третья')+1)
text2 = '\nааапп кук вкасвки 21312312313dddddddddd'
file.write(text2)
file.write(file_chunk)
file.seek(0)
print(file.read())

Смотрится правда не ахти, но наверно это нормально при работе с файлами.
vanvanov
Если я правильно понял, вы хотите это:
text2 = 'ааапп кук вкасвки 21312312313dddddddddd'
with open('some.txt') as file:
        my_text=file.read()
with open('some.txt', 'w') as file:
        my_text=my_text.replace('Третья строка\nЧетверта строка','Третья строка\n'+text2+'\nЧетверта строка')
        file.write(my_text)
with open('some.txt') as file:
        print(file.read())
На выходе:
Первая строка
ВТорая строка
Третья строка
ааапп кук вкасвки 21312312313dddddddddd
Четверта строка
vanvanov
Как вариант, прочитайте текст в массив:
# Построчно загрузить файл в массив и вернуть как переменную
def load_array(file):
        with open(file) as f:
                array=f.read().splitlines()
        return array
Затем вставляйте элемент в массив и перезаписывайте файл.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB