코딩 연습/코딩배우기

파이썬 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시가 되면 이렇게 기도한다.

"정치인들은 국민을 두려워하게 하시고
기업인들은 사람을 존중하게 하시며
언론인들은 진실을 말하게 해 주시고
법조인들은 양심을 지키게 하소서"

 

good4me.co.kr

 

위 내용을 소스 코드로 실행한 결과는,

코드 실행결과
코드 실행결과