파이썬 open 함수 파일에서 원하는 위치에 글 넣는 법

rlarlwn100의 이미지

[ txt파일 1 ]

철수 90

영희 89

기영 32

기철 72

라는 내용의 txt파일이 있을때 영희랑 기영이 사이에 찬수 78을 넣으려 하는데 파이썬에서 open 함수를 어떻게 사용하여야 하나요..?

세벌의 이미지

https://docs.python.org/3/library/functions.html#open
그런데, open 함수만 갖고는 안 될 겁니다.

파이썬3의 이미지

(bionic)soyeomul@localhost:~/111$ ls
1.py  1.txt
(bionic)soyeomul@localhost:~/111$ cat 1.txt
데비안
우분투
페도라
레드햇
(bionic)soyeomul@localhost:~/111$ python3 1.py
(bionic)soyeomul@localhost:~/111$ ls -l
total 16
-rw-rw-r--. 1 soyeomul soyeomul 622  6월  3 23:47 1.py
-rw-rw-r--. 1 soyeomul soyeomul  40  6월  3 23:28 1.txt
-rw-rw-r--. 1 soyeomul soyeomul  49  6월  3 23:47 2.txt
(bionic)soyeomul@localhost:~/111$ cat 2.txt
데비안
우분투
크롬OS
페도라
레드햇
(bionic)soyeomul@localhost:~/111$ 

# -*- coding: utf-8 -*-
 
FRPATH = "1.txt" # 변경가능
FWPATH = "2.txt" # 변경가능
 
f = open(FRPATH, "r")
data = f.readlines() # ['데비안\n', '우분투\n', '페도라\n', '레드햇\n']
f.close()
 
new_data = []
new_data.append(data[0])
new_data.append(data[1])
new_data.append("크롬OS\n")
new_data.append(data[2])
new_data.append(data[3])
 
# new_data: ['데비안\n', '우분투\n', '크롬OS\n', '페도라\n', '레드햇\n']
 
nf = open(FWPATH, "w")
for k in new_data:
    nf.write(k)
 
nf.close()
 
# EOF

[우분투 18.04 파여폭스 나비에서 적었습니다]