Работа с файлами Python. Переменная и split

Нужно создать вручную файл( но я пока сделал чтобы он создавался сам) в файле содержатся предложение потом в коде надо считать содержимое этого файла в переменную. Не понимаю переменная это как? Потом нужно разбить эту текстовую переменную в массив( я так понимаю это с помощью split, только куда её вставлять) потом в этот масив нужно добавить 4 строки любых и записать всё в новый файл. Тоесть из первого файла надо выдернуть этот масив и добавить новые 4 строки(которые вводишь через консоль) и чтобы создавался новый файл с этим текстом? Вот код, правда я не догоняю как перенести с одного файла в другой новый текст.Получилось только добавлять в него строки и сохранят его же отредоктированным.

f = open("tekst.txt", 'w+')

line1 = input()
line2 = input()
line3 = input()
line4 = input()

f.write(line1)
f.write(" ")
f.write(line2)
f.write(" ")
f.write(line3)
f.write(" ")
f.write(line4)
f.close()

f = open("tekst.txt", 'r')
print("Содержание файла:\n", f.read())
f.close()

f = open("tekst.txt", 'w+')

f.write(line2)
f.write(" ")
f.write(line4)
f.close()

f = open("tekst.txt", 'r')
print("Слова в чётных позициях:\n", f.read())
f.close

Ответы (1 шт):

Автор решения: belo4ya

Вы на правильно пути! Но вам нужно запомнить строки прочитанные из tekst.txt для этого их нужно записать в переменную. В моем примере это список words. Затем модифицируем список и пишем в новый файл.

Для работы с файлами хорошим тоном является использование контекстного оператора with, который контролирует открытие и закрытия файла

with open("file.txt", "r", encoding="utf-8") as f:
    words = f.read().split()

for i in range(4):
    words.extend(str(input("Введите строку: ")).split())

with open("file_out.txt", "w", encoding="utf-8") as f:
    for i in range(len(words)):
        if i % 2 == 0:
            print(i)
            f.write(words[i] + " ")

input:

Введите строку: Привет
Введите строку: Солнышко
Введите строку: Зебра
Введите строку: bar

file.txt

Hello, world! Hello, python!

file_out.txt

Hello, Hello, Привет Зебра 
→ Ссылка