У меня есть хороший опыт программирования на языке C, и я начал работать над python с помощью C Backround.
У нас есть файл с именами для примера 1.txt и 2.txt. я беру все содержимое 1.txt и записываю в 2.txt с заданного номера строки, и все строки в 2.txt будут автоматически перемещены вниз. Для этого я использую следующую логику:
f = open("1.txt", "r")
contents = f.readlines()
f.close()
with open("2.txt") as f:
data = f.read().rstrip("\n")
line =19
contents.insert(line, data)
f = open("1.txt", "w")
contents = "".join(contents)
f.write(contents)
f.close()
Эта логика работает очень хорошо, но проблема, с которой я сталкиваюсь, заключается в том, что последняя строка записывается сразу после содержимого 1.txt. (Но, согласно моему требованию, он должен начинаться со следующей строки) даже я пробовал с «\ n», но я не могу этого добиться.
Для большей ясности, как показано ниже.
1.текст:
hello
hello
hello
hello
2.текст:
123
456
789
451
234
предположим, если я выполню свой код для вышеуказанных файлов 1.txt и 2.txt (и я хочу записать свои данные между 789 и 451).
после выполнения скрипта 2.txt выглядит следующим образом:
123
456
789
hello
hello
hello
hello 451
234
Здесь «Hello 451» заставляет мою логику не работать в следующий раз.
Итак, я хочу добиться, как показано ниже:
123
456
789
hello
hello
hello
hello
451
Пожалуйста, поделитесь решением или помогите мне достичь этой логики. 234
data = f.read().rstrip("\n")
. Попробуйте НЕ удалить новую строку и посмотрите, что произойдет:data = f.read()
. - person Abdou   schedule 25.07.2017