프로그래밍에 있어 입출력은 매우 중요합니다. 여기서는 콘솔에서의 사용자 입출력파일 입출력을 다룹니다.

사용자 입출력

콘솔에서 사용자의 입력을 받기 위해 input 함수를 사용합니다. Python 2에는 raw_input이라는 함수도 있으나, Python 3에서 제거되었습니다. 사용자에게서 enter가 들어오기 전까지 제어는 멈춰 있습니다.

위처럼 input 함수에 문자열을 넘겨주며 hint를 제공할 수 있습니다. input의 반환값은 문자열이며, 따라서 1을 입력받더라도 문자열인 '1'로 처리됩니다. 정수를 받아 처리하고 싶다면 타입 캐스팅을 사용해야 합니다.

파일 입출력

파일을 열기 위해 open 함수를 사용합니다. 읽기, 쓰기, 추가 모드가 있습니다.

파일에 문자열 쓰기(w)

open 함수에 넘겨주는 첫 번째 인자는 파일의 이름이고, 두 번째 인자는 열기 모드입니다. 여기서는 쓰기(w) 모드로 열어 파일 객체의 write 메소드를 이용해 문자열을 쓰고, close 메소드를 이용해 파일을 닫았습니다. 기본적으로 쓰기 모드는 현재 경로에 해당 파일이 존재하지 않으면 파일을 만든 후 엽니다. 파일 열기 모드의 종류는 아래와 같습니다.

  • 읽기 : r
  • 쓰기 : w
  • 추가 : a

파일에 문자열 추가(a)

쓰기(w) 모드로 열린 파일에 write 메소드를 사용해 데이터를 쓸 경우, 파일에 적혀 있던 것들을 모두 지우고 해당 문자열을 기록하므로 기존의 파일 내용에 데이터를 추가한다면 추가(a) 모드로 파일을 열어야 합니다.

파일 읽기(r)

파일을 읽기(r) 모드로 열어 파일의 내용을 읽어 봅시다. 파일 열기 모드를 따로 넘겨주지 않으면 읽기(r) 모드로 파일을 엽니다. 문자열과 개행이 포함된 파일을 열어서 내용을 읽어 보겠습니다.

각각의 메소드를 테스트할 때마다 파일을 새로 열었는데, 이는 open에 의해 반환된 파일 객체는 파일을 순차적으로 읽어가기 때문입니다. 읽기 모드로 열린 파일 객체에 대해 파일의 내용을 조회하는 방법은 대표적으로 read, readline, readlines가 있습니다.

  • read : \n과 같은 이스케이핑 문자가 포함된 파일의 내용 전체를 가져옵니다.
  • readline : 메소드가 호출될 때마다 파일의 한 줄을 읽습니다.
  • readlines : 파일의 내용을 개행 기준으로 나눠 list로 반환합니다.

바이너리 파일 다루기

바이너리 파일도 읽기, 쓰기, 추가 모드로 나누어 열 수 있으며, 똑같이 open 함수에 각각 rb, wb, ab를 넘겨주면 됩니다.

'Python 계열 > Python 레거시 글' 카테고리의 다른 글

[Python] @property와 setter  (0) 2018.07.13
[Python] Keyword exclusive argument  (0) 2018.07.11
[Python] Comprehension  (0) 2018.07.09
[Python] PEP  (0) 2018.07.08
[Python] 패키지  (0) 2018.07.07

+ Recent posts