본문 바로가기
Python

[Python] list 를 text file 에 한줄씩 쓰기 ( \n 안나오게 )

by bryan.oh 2020. 9. 5.
반응형

Python
List 의 각 요소를 text file 에 한줄씩 쓰기

 

testList = ['123', '456', 'abc', 'def']

123
456
abc
def

 

    filePath = './test.txt'
    testList = ['123', '456', 'abc', 'def']
    with open(filePath, 'w+') as lf:
        lf.write('\n'.join(testList))  # 이렇게 하면 안됩니다~

 

그런데 문제는

저 텍스트 파일을 읽어 들이면?

filePath = './test.txt'
testList = ['123', '456', 'abc', 'def']
with open(filePath, 'w+') as lf:
    lf.write('\n'.join(testList))

with open(filePath, 'r') as lf:
    readList = lf.readlines()

print(readList)
# ['123\n', '456\n', 'abc\n', 'def']

보이시나요? 각 요소 뒤에 "\n" 이 붙어있습니다.

간단하게는 각 요소마다 rstrip('\n') 을 하면 될것도 같은데, 
testList 의 어떤 요소가 원래 \n 으로 끝나는게 있다면?
파일을 쓰고 다시 읽었을 때 데이터가 똑같지 않겠죠.

 

이 기본 라이브러리를 사용해서 list 를 편하게 쓰고 읽고 할수 있습니다.

간단한거 설명하면서 말이 길었네요. 그냥 코드 보시죠.

import pickle

filePath = './test.txt'
testList = ['123', '456', 'abc', 'def']
with open(filePath, 'wb') as lf:
    pickle.dump(testList, lf)


with open(filePath, 'rb') as lf:
    readList = pickle.load(lf)
    print(readList)
    # ['123', '456', 'abc', 'def']

깔끔합니다.

 

728x90
반응형

댓글