[python] #7. 입력과 출력
사용자로부터 입력을 받는 함수는 raw_input()
을 사용하면 된다.
결과를 출력해주기 위해 str
클래스가 제공하는 여러 메소드를 사용할 수 있는데, help(str)
을 실행하여 자세히 알아보자.
또 다른 입출력 형식은 파일을 다루는 것이다.
사용자로부터 입력받기
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text)
something = raw_input("Enter text: ")
if is_palindrome(something):
print 'Yes, It is a palindrome'
else:
print 'No, It is a palindrome'
결과
$ python io_input.py
Enter text: sir
No, it is not a palindrome
$ python io_input.py
Enter text: madam
Yes, it is a palindrome
def reverse(text):
return text[::-1]
def is_palindrome(text):
return text == reverse(text)
something = raw_input("Enter text: ")
if is_palindrome(something):
print 'Yes, It is a palindrome'
else:
print 'No, It is a palindrome'
결과
$ python io_input.py
Enter text: sir
No, it is not a palindrome
$ python io_input.py
Enter text: madam
Yes, it is a palindrome
raw_input()
함수는 인수로 넘겨받은 문자열을 화면에 표시하고 사용자의 입력 후 엔터 키를 누를 대까지 기다린다.
파일 입/출력
입/출력을 위해 파일을 열고 사용하려면 file
클래스의 객체를 생성한 후 read
, readline
, write
와 같은 메소드를 적절히 활용하면 된다.
모두 마친 후에는, close
메소드를 호출하여 파일을 다 사용했다는 것을 알려 주어야 한다.
poem = '''\
시
프로그래밍은 재밌다.
'''
# 쓰기 모드로 오픈
f = open('poem.text', 'w')
# 파일에 글을 쓴다.
f.write(poem)
# 파일을 닫는다.
f.close()
# 만약 모드를 명시하기 않으면 읽기 모드가 기본값으로 설정된다.
f = open('poem.text')
while True:
line = f.readline()
# 길이가 0이면 EOF 이다.
if len(line) == 0:
break;
# 'line' 은 파일의 각 끝까지 읽어 각 라인을 새 라인으로 읽어온다.
print line,
# 파일을 닫는다.
f.close()
결과
시
프로그래밍은 재밌다.
open
함수를 이용할 때 다음 모드들을 지정해주면 된다.
모드 | 지정 |
---|---|
일기 모드 | r |
쓰기 모드 | w |
덧붙임 모드 | a |
텍스트 모드 | t |
바이너리 모드 | b |
Pickle
파이썬은 pickle
이란 기본 모듈을 제공하는데, 어떤 파이썬 객체든 파일로 저장해 두었다 나중에 불러와서 사용할 수 있는 모듈이다. 이것을 객체를 영구히 저장해 둔다고 한다.
# 저장할 객체의 파일 이름
shoplistfile = 'shoplist.data'
shoplist = ['apple', 'mango', 'carrot']
# 파일에 쓴다
f = open(shoplistfile, 'wb')
# 파일에 객체를 보낸다
pickle.dump(shoplist, f)
f.close()
# 변수를 없앰
del shoplist
# 저장된 파일을 다시 불러옴
f = open(shoplistfile, 'rb')
# 파일로부터 객체를 로드
storedlist = pickle.load(f)
print storedlist
결과
$ python io_pickle.py
['apple', 'mango', 'carrot']
파일에 객체를 저장하기 위해서는 바이너리 모드로 열어서 읽고 써야한다.
pickle
모듈의 dump
함수를 호출하여 준다. 이 과정을 피클링이라 한다.
그리고 pick
모듈의 load
함수를 이용하여 파일에 저장된 객체를 불러온다.
이 과정을 언피클링이라 한다.
유니코드
파일에 쓸 때 영어가 아닌 다른 언어로된 문자를 읽고 쓰고 싶은 경우 unicode
형식을 이용할 필요가 있다. 이는 문자 u
를 앞에 붙여주면 된다.
비 영어권 언어를 다룰 때 str
대신 unicode
형식을 사용하여 문자를 다루어 주어야 한다.
그러나 인터넷 상의 다른 컴퓨터와 송수신 시 가능한 UTF-8 형태로 주어야 한다. 다음과 같다.
# encoding=utf-8
import io
f = io.open("abc.txt", "wt", encoding="utf-8")
f.write(u"Imagine non-English language here")
f.close()
text = io.open("abc.txt", encoding="utf-8").read()
print text
Author And Source
이 문제에 관하여([python] #7. 입력과 출력), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@whdnjsdyd111/python-7.-입력과-출력저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)