본문 바로가기
코딩 이야기/파이썬(Python)

단도직입 파이썬(Python) – 입출력(input, print)

by 아재코더 2021. 12. 16.
파이썬 입출력

우리가 어떤 작업을 프로그래밍 하고자 할 때 다양한 방법으로 데이터를 입력하고 출력할 수 있습니다. 키보드로부터 입력을 받아 파일로 출력한다거나, 파일로 데이터를 입력받아 모니터로 확인하고 다시 파일로 출력하는 작업들이 일반적입니다. 이 또한 앞서 언급된 Open Library를 이용하여 다양한 방법으로 입출력이 가능합니다만 오늘은 파이썬에서 가장 일반적으로 사용되는 입출력 방법을 살펴봅니다.

iput() 명령어를 이용하여 사용자가 입력한 값을 변수에 넣는 가장 간단한 방법입니다.

>>> a = input()

You need Python

>>> a

'You need Python'

>>> print(a)

You need Python

>>> a=input('숫자입력 : ')

숫자입력 : 123

>>> a

‘123’

input()으로 입력을 받게 되면 숫자, 문자를 모두 문자열로 변형하여 a 변수에 입력하게 됩니다. 정수형 숫자로 입력을 받으려면 input()과 함께 int()를 이용합니다.(실수형은 float())

>>> a = int(input())

123

>>> a

123

차이점을 알아야 합니다.^^

 

input()이 가장 일반적인 입력 방법이라면, print()는 가장 일반적인 출력 방법입니다.

>>> print('Python is easy')

Python is easy

>>> print('Python'+'is’’easy')

Pythoniseasy

>>> print('Python','is','easy')

Python is easy

 

문자열과 문자열 사이 + 연산자는 의미가 없으며, 띄어쓰기는 ,(콤마)로 합니다.

>>> for i in range(3):

... print( i )

... ^Z

0

1

2

>>> for i in range(10):

... print( i, end='')

... ^Z

0123456789>>>

end='' 는 출력값을 옆으로 하는 매개변수입니다.

 

지금까지 키보드로 입력받아 모니터로 출력하는 형태의 입출력을 알아보았습니다. 하지만 대용량의 데이터를 키보드로부터 입력받아 우리가 원하는 형태로 가공 또는 연산 작업 후 출력할 때는 불편한 방법이겠죠? 이제는 파일을 이용한 입출력 방법에 대해 알아보겠습니다.

 

파일 객체 = open(파일 이름, 파일 열기 모드)의 형태로 이용합니다.

f = open( 'test.txt', 'w')

f.close()

위와 같이 실행하게 되면 test.txt가 생성되는 것을 볼 수 있습니다.

파이썬 - 파일 입출력

f.close()는 열려있는 파일 객체를 닫아 주게 됩니다.

파일 열기 모드는 다음과 같습니다.

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

새 파일의 생성 위치도 디렉터리(directory) 설정에 따라 변경할 수 있습니다.

f = open('c:/python_code/test1.txt','w')

f.close()

C:/python_code/test1.txt 파일을 만들게 됩니다.

f=open('text.txt','w')

for i in range(1,4):

data = '%d 번째 줄입니다.\n' % i

f.write(data)

f.close

 

for i in range(1,4):

data = '%d 번째 줄입니다.\n' % i

print(data)

 

1번째 줄입니다.

2번째 줄입니다

3번째 줄입니다

라고 화면에 출력된 내용이 text.txt 파일에 그대로 기록되어 있습니다.

 

외부 파일을 열어 읽어올 때 readline() 함수 사용에 대해 알아봅니다.

f = open('text.txt','r')

line = f.readline()

print(line)

f.close()

 

1번째 줄입니다.

 

라고 출력됩니다. text 파일 내용 모두를 읽어오고 출력할 때는 다음과 같이 반복문을 사용하면 쉽게 해결됩니다.

f = open('text.txt','r')

while True:

line = f.readline()

if not line : break

print(line)

f.close()

while True는 무한 루프를 돌기 시작하지만 if not line(파일의 끝)의 조건에 부합하면 break로 루프를 빠져나오게 되며, 파일을 닫게 됩니다. 파일의 끝에서 readline() = None을 가지게 됩니다.

readline()은 파일을 한 줄씩 문자열로 읽는다면, readlines()는 파일 전체를 읽어 각줄의 요솟값을 리스트 형태로 돌려줍니다.

readline()와 readlines()는 다르게 사용되는 점 유의하세요~! (한 끗 차이가 전혀 다른 결과를 불러옵니다!!!)

readlines()가 파일 전체를 line 별 리스트로 만든다면, read()는 파일 내용 전체를 문자열로 만들어 줍니다.

파이썬 - 파일의 내용을 읽음
 
함수
설명
readline()
한 줄씩 읽은 값을 문자열로 돌려준다.
readlines()
파일 전체를 한 줄씩 읽은 다음 리스트에 담에 돌려준다.
read()
파일 전체를 문자열로 돌려준다.

 

파일에 새로운 내용을 추가할 때는 'w'가 아닌 'a'를 사용합니다.

'w'로 파일을 열 때 기존 파일이 존재하게 되면 그 파일의 내용이 모두 지워지게 됩니다. 원래 파일의 있던 값을 유지하며 새로운 값을 추가할 때는 'a'를 사용합니다.

파이썬 - 파일로 출력

추가로 세 줄이 기록된 것을 알 수 있습니다. with 문을 함께 사용하면 with 블록을 벗을 날 때 파일을 자동으로 닫을 수 있습니다.

with open ('text.txt','w') as f:

f.write('Pythone is easy')

좀 더 간결해 보이지 않나요?

댓글