Python에서 파일에 여러 줄의 텍스트를 작성하려면 write() 함수를 사용하고, 각 줄 사이에 줄바꿈 문자인 '\n'을 삽입하면 됩니다. 줄바꿈 문자가 없으면 모든 내용이 한 줄로 이어져 저장되므로 반드시 포함해야 합니다.
write() 함수로 여러 줄 작성하기
아래 예제처럼 format() 메서드를 활용하면 각 줄 뒤에 줄바꿈 문자를 붙여 깔끔하게 작성할 수 있습니다.
line1 = "First line"
line2 = "Second line"
line3 = "Third line"
with open('my_file.txt', 'w') as out:
out.write('{}\n{}\n{}\n'.format(line1, line2, line3))writelines() 함수로 리스트 한 번에 작성하기
여러 개의 문자열이 리스트 형태로 준비되어 있다면 writelines() 함수를 사용하는 것이 더 편리합니다. 리스트의 각 요소를 순서대로 파일에 기록합니다.
line1 = "First line"
line2 = "Second line"
line3 = "Third line"
with open('my_file.txt', 'w') as out:
out.writelines([line1, line2, line3])주의할 점
writelines()는 이름과 달리 각 항목 사이에 자동으로 줄바꿈을 추가하지 않습니다. 따라서 줄을 나누어 저장하려면 다음과 같이 각 문자열 끝에 직접 '\n'을 넣어야 합니다.
lines = ["First line\n", "Second line\n", "Third line\n"]
with open('my_file.txt', 'w') as out:
out.writelines(lines)또한 최신 Python(3.6 이상)에서는 f-string을 사용하면 코드를 더욱 간결하게 작성할 수 있습니다.
with open('my_file.txt', 'w') as out:
out.write(f"{line1}\n{line2}\n{line3}\n")두 방법 모두 with 문을 사용하면 파일 작업이 끝난 후 자동으로 파일이 닫히므로, 리소스 누수를 걱정할 필요 없이 안전하게 파일을 처리할 수 있습니다.