리스트 변수의 내용들을 write( )로 txt파일에 입력할 때 오류가 발생한다.
lan = ['c', 'java', 'c#', 'python', 'js']
for item in lan: with open('languages.txt', 'a') as f: f.write(item+'\n')
write( )로 적으려면 for문으로 리스트 속 데이터들을 하나씩 적어야 한다.
f.write('\n')이 없으면 개행하지 않고 한줄로 입력해 버리니 주의하자!
with open('languages.txt', 'w') as f: f.writelines(lan)
wrtielines( )를 사용하면 for문 없이 리스트 변수를 txt파일에 적을 수 있다.
다만 개행과 띄어쓰기가 없이 적는다.
with open('languages.txt', 'w') as f: f.writelines(item + '\n' for item in lan)
보기 편하게 개행하기 위해서는 write( ) 처럼 for문을 사용해 리스트 내 데이터들을 하나씩 적고 개행하도록 코드를 써줘야 한다.
위에서 적었던 languages.txt를 읽어보자!
with open('languages.txt', 'r') as f: kk_list = f.readlines() print(f'kk_list : {kk_list}') print(f'kk_list type : {type(kk_list)}')
readlines( )는 txt파일의 내용들을 리스트(list)형태로 읽는다. 또한 개행(\n)도 함께 읽어서 데이터값 뒤에 '\n'이 붙어있다.
with open('languages.txt', 'r') as f: line = f.readline()
while line != '': print(f'line : {line}', end='') line = f.readline()
반면 readline( )는 readlines( )처럼 txt파일을 리스트 형태로 읽어오지 않고 한줄만 읽기 때문에 반복문을 사용해야 끝까지 읽어올 수 있다.