본문 바로가기

Programming/Python

Do it! 공부단 4일차 | ch04 프로그램의 입력과 출력_사용자 입출력과 파일

02 사용자 입출력

사용자의 입력을 받는 방법과 출력하는 방법을 알아보자.

 

02-1 input

  • 사용가 입력한 값을 어떤 변수에 대입하고 싶을 땐 input을 사용한다.
  • input은 입력되는 모든 것을 문자열로 취급한다.
  • input의 괄호 내에 원하는 문자열을 넣을 수 있다.

 

예시를 보자.

>>> number = input("숫자를 입력하세요:")
숫자를 입력하세요:3
>>> print(number)
3

*파이썬 대화형 인터프리터(Python 3.9 64-bit))에서 실행했다.

 

02-2 print

  • 값을 출력하는 print는 다양하게 사용할 수 있다. 
  • 큰따옴표(")로 둘러싸인 문자열은 +연산과 동일하다.
  • 문자열 띄어쓰기는 콤마로 한다.
  • 한 줄에 결괏값을 출력할 땐 매개변수 end를 사용한다.

 

예시를 보자.

#print

print("큰따옴표(\")로 둘러싸인 문자열은 +연산과 동일하다.")
print("Life""is""too short")
print("Life"+"is"+"too short\n")

print("문자열 띄어쓰기는 콤마로 한다.")
print("Life","is","too short\n")

print("한 줄에 결괏값을 출력할 땐 매개변수 end를 사용한다.")
for i in range(10):
    print(i, end='')

 

03 파일 읽고 쓰기

파일을 통한 입출력 방법을 알아보자.

 

03-1 파일 생성하기

파일을 생성할 땐 파이썬 내장 함수 open을 사용한다.

 

형태는 다음과 같다. 

파일 객체 = open(파일 이름, 파일 열기 모드)

 

예시를 보자.

#file

f = open("새파일.txt", 'w')
f.close()
  • 원하는 디렉터리에 파일을 생성하고 싶다면 파일 이름 앞에 경로를 적어준다(예) "C:/doit/새파일.txt").
  • 파일 열기 모드에 있는 'w'는 쓰기 모드를 의미한다.
  • 프로그램을 종료할 때 파이썬 프로그램이 열려있는 파일 객체를 자동으로 닫아주지만 오류를 방지하기 위해 close()를 사용해서 닫아주는 것이 좋다.

 

파일 열기 모드의 종류

r 읽기 모드 - 파일을 읽기만 할 때 사용
w 쓰기 모드 - 파일에 내용을 쓸 때 사용
a 추가 모드 - 파일의 마지막에 새로운 내용을 추가할 때 사용

* 파일을 쓰기 모드로 열면 해당 파일이 이미 존재할 경우 원래의 내용이 모두 사라지고 새로운 파일이 생성된다.

 

03-2 파일 쓰기 모드로 출력 값 적기

파일을 열어 출력 값을 직접 써보자.

#file_writedata

f = open("새파일.txt", 'w')
for i in range(1, 11):
    data = "%d번째 줄입니다.\n" %i
    f.write(data)
f.close()

for문을 사용해 데이터를 파일에 저장했다.

 

파일은 명령 프롬프트(cmd)에서 확인할 수 있다. 명령 프롬프트에서 파일이 저장된 경로로 이동한 뒤 '새파일.txt'를 입력했다. 

 

cmd

 

03-3 파일 읽기

외부 파일을 읽는 방법은 세 가지가 있다(readline, readlines, read)

 

| readline함수 사용하기

  • readline을 사용하면 가장 첫 번째 줄이 화면에 출력된다.
  • 모든 줄을 출력하고 싶은 경우 무한 루프를 사용한다.

 

예시를 보자.

#file_readline

f = open("새파일.txt", 'r')
line = f.readline()
print(line)

"""
모든 줄을 읽고 싶은 경우
while True:
    line = f.readline()
    if not line: break
    print(line)
"""
    
f.close()

 

| readlines 함수 사용하기

readlines는 파일의 모든 줄을 읽어서 각각의 줄을 요소로 갖는 리스트로 돌려준다.

 

예시를 보자.

#file_readlines

f = open("새파일.txt", 'r')
lines = f.readlines()
print(lines)

for line in lines:
    print(line)
    
f.close()

 

| read 함수 사용하기

read는 파일의 내용 전체를 문자열로 돌려준다.

#file_read

f = open("새파일.txt", 'r')
data = f.read()
print(data)
f.close()

 

03-4 파일에 새로운 내용 추가하기

  • 쓰기 모드('w')로 파일을 열면 그 파일의 내용이 모두 사라진다.
  • 원래 데이터를 유지하면서 새로운 데이터를 추가할 땐 추가 모드('a')를 사용한다. 

 

예시를 보자.

#file_adddata

f = open("새파일.txt", 'a')
for i in range(11, 20):
    data = "%d번째 줄입니다\n" %i
    f.write(data)
f.close()

 

추가 모드를 사용해 "새파일.txt"에 데이터를 추가했다.

 

f.read()로 파일을 읽은 모습이다. 기존의 데이터는 유지한 채 데이터가 추가된 것을 확인할 수 있었다.

 

03-5 with문

  • 파일을 항상 f.clsoe()로 닫아주는 것이 번거로울 땐 with문을 사용할 수 있다.
  • with문은 with블록을 벗어나는 순간 열린 파일 객체를 자동으로 닫아준다.

 

두 예시를 비교해보자.

#file_before_with

f = open("foo.txt", 'w')
f.write("Life is too short, you need python")
f.clsoe()
#file_after_with

with open("foo.txt", 'w') as f:
    f.write("Life is too short, you need python")

 


이 글은 책 『Do it! 점프 투 파이썬』을 읽은 후 작성한 글입니다.

 

Do it! 점프 투 파이썬

코딩을 처음 배우는 중·고등학생과 나만의 경쟁력을 갖추고 싶은 문과생, 소프트웨어 시대에 대비하여 새로운 스펙을 준비하려는 직장인까지! 모두 ‘점프 투 파이썬’으로 프로그래밍을 시작

www.easyspub.co.kr