코딩 연습/코딩배우기
파이썬 truncate() 함수로 텍스트 파일 내용 삭제하기
good4me
2022. 4. 7. 15:44
파이썬에서 텍스트 파일 등의 내용을 일부 삭제해야 하는 경우, truncate() 메서드를 사용하면 현재 파일의 크기를 특정 바이트 수로 자를 수 있다. 또한, 파일의 모든 내용 삭제하거나 특정 단어가 포함된 라인을 찾아 삭제도 가능하다.
파이썬 truncate() 함수 예제
특정 파일의 내용 중 짝수 라인만을 삭제하는 코드
with open('test.txt', 'r+', encoding='utf-8') as f:
new_f = f.readlines()
f.seek(0) # 파일 시작 부분으로 이동
cnt = 1
for line in new_f:
cnt += 1
if cnt % 2 == 0:
f.write(line)
f.truncate() # 현 위치까지만 남기고 나머지는 정리
print('완료!')
위 코드에서 파일 내용을 일부 삭제 후 다시 쓰는 방법으로 하기 위해 읽기 추가 모드인 'r+'로 파일을 열었다.
예시로, 아래와 같은 파일이 있다.
인생을 바꾸고 싶다고 말한다.
어제와 똑같이 살면서.
세상을 바꾸고 싶다고 말한다.
아무 것도 하지 않으면서.
누가 누가 나쁘다고 말한다.
그보다 더 나쁘게 살면서.
예수를 믿으라고 말한다.
예수와 정반대로 살면서.
부처님께 삼천배 했다고 말한다.
저만 잘 살게 해달라고 빌었으면서.
집값이 올랐다고 욕한다.
자기가 올렸으면서.
요즘 아이들 큰일났다고 말한다.
부끄러움을 잊었으면서.
점점 더 소외된다고 말한다.
하루종일 종편만 보면서.
점점 더 가난해진다고 말한다.
부자에게 투표하면서.
점점 더 이해할 수 없는 것 투성이라고 말한다.
책 한 줄 읽지 않으면서.
세상이 지옥이라고 말한다.
자기가 악마로 살면서.
세상이 천국이라고 말한다.
남의 것을 다 빼앗았으면서.
그리고 우리의 아들 딸들은 매일 밤 10시가 되면 이렇게 기도한다.
"정치인들은 국민을 두려워하게 하시고
기업인들은 사람을 존중하게 하시며
언론인들은 진실을 말하게 해 주시고
법조인들은 양심을 지키게 하소서"
위 내용을 소스 코드로 실행한 결과는,