더북(TheBook)

14.10 디버깅

파일을 읽고 쓸 때 공백 문제가 발생할 수 있다. 공백, 탭, 새줄 문자는 일반적으로 보이지 않기 때문에 이런 오류는 디버그하기 어려울 수 있다.

>>> s = '1 2\t 3\n 4'

>>> print(s)

1 2 3

4

내장 함수 repr가 이런 경우에 유용하다. 객체를 인수로 받아서 객체의 문자열 표현을 반환한다. 예를 들어 문자열이면 공백 문자를 역슬래시 시퀀스로 표현해준다.

>>> print(repr(s))

'1 2\t 3\n 4'

이런 표현은 디버깅에도 유용하다.

또 다른 문제는 다른 시스템에서는 줄의 끝을 나타내는데 다른 문자를 사용하는 것이다. 어떤 시스템에서는 새줄, \n 표현을 사용한다. 다른 시스템에서는 리턴 문자 \r을 사용한다. 어떤 시스템은 두 가지를 함께 쓴다. 다른 시스템 사이에 파일을 이동하면 이러한 차이가 문제를 일으킬 수 있다.

대부분 시스템에는 이러한 형식을 변환하는 응용 프로그램이 있다. 이에 대해서는 위키피디아 새줄 문자 항목(http://ko.wikipedia.org/wiki/Newline)을 참조하자. 물론, 형식을 변환하는 응용 프로그램을 직접 작성할 수도 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.