Python - 입출력

이호현·2020년 7월 4일
0

Python

목록 보기
6/10

1. 기본 입출력

sep=''

문자열 사이사이에 문자열 추가

print('햄토리', '햄순이', '철수', sep='랑 ')

# > 햄토리랑 햄순이랑 철수

end=''

문자열 마지막에 문자열 추가

print('햄토리가 누구니', end='?')

# > 햄토리가 누구니?

ljust(), rjust()

왼쪽(오른쪽)끝에 ()안의 숫자만큼 공간 확보후 왼쪽(오른쪽) 정렬
()안의 숫자가 문자열 길이보다 작으면 문자열 길이만큼 공간 확보

scores = {'수학': 100, '국어': 50, '영어': 70}
for sub, score in scores.items():
    print(sub.ljust(5), str(score).rjust(3))

# > 수학    100
# > 국어     50
# > 영어     70

zfill()

()안의 숫자만큼 공간 확보후 빈칸은 '0'으로 채움

for num in range(1, 5):
    print(str(num).zfill(3))

# > 001
# > 002
# > 003
# > 004

input()

사용자로부터 입력을 받을 때

answer = input('값을 입력하세요 : ')
print(answer)

# > 값을 입력하세요 : hello
# > hello

입력받은 값은 문자열로 저장(숫자는 문자열로 변환)

answer = input('값을 입력하세요 : ')
print(type(answer))

# > 값을 입력하세요 : hello
# > <class 'str'>

# > 값을 입력하세요 : 10
# > <class 'str'>

2. 다양한 출력 포맷

{a:c>b}

b만큼 공간 확보후 a에 format값 대입 후 오른쪽 정렬
빈 칸은 c로 채움(공백을 넣으면 공백이 들어감)

print('{0:?>10}'.format(10))

# > ????????10

b왼쪽에 '+'를 붙이면 양수일 때 +, 음수일 때 -로 표시됨

print('{0:?>+10}'.format(10))
print('{0:?>+10}'.format(-10))

# > ???????+10
# > ???????-10

{a:c<b}

b만큼 공간 확보후 a에 format값 대입 후 왼쪽 정렬
빈 칸은 c로 채움(공백을 넣으면 공백이 들어감)

print('{0:?<10}'.format(10))

# > 10????????

b왼쪽에 '+'를 붙이면 양수일 때 +, 음수일 때 -로 표시됨

print('{0:?<+10}'.format(10))
print('{0:?<+10}'.format(-10))

# > +10???????
# > -10???????

{a:,}

숫자 3자리마다 ',' 찍음

print('{0:,}'.format(1000000))

# > 1,000,000

',' 왼쪽에 '+'를 붙이면 양수일 때 +, 음수일 때 -로 표시됨

print('{0:+,}'.format(1000000))
print('{0:+,}'.format(-1000000))

# > +1,000,000
# > -1,000,000

{a:f}

소수점을 표시할 때(f는 format값 위치가 아니라 float를 의미함)
f앞에 .숫자를 붙여서 소수 몇 번째 자리까지 보여줄지 표시

print('{0:f}'.format(5 / 3))
print('{0:.3f}'.format(5 / 3))

# > 1.666667
# > 1.667

3. 파일 입출력

open()

-file을 찾아서 연다(없으면 생성)

'w'는 파일에 내용을 입력(이미 내용이 있으면 덮어씀)

textFile = open('test.txt', 'w', encoding='utf8')
print('햄토리', file=textFile)
print('햄순이', file=textFile)
textFile.close()

#test.txt 파일이 생성되고 아래와 같이 보임

#햄토리
#햄순이

'a'는 기존에 있는 내용에 추가로 작성

textFile = open('test.txt', 'a', encoding='utf8')
textFile.write('햄토리')
textFile.write('햄순이')
textFile.close()

#test.txt 파일에 아래와 같이 보임(줄바꿈은 따로 해줘야됨)

#햄토리햄순이

'r'는 기존에 있는 내용을 읽어 옴

#read()를 사용하면 내용 전부를 표시
textFile = open('test.txt', 'r', encoding='utf8')
print(textFile.read())

# > 햄토리
# > 햄순이
#readline()를 사용하면 한줄씩 읽어 올 수 있음
textFile.close()
textFile = open('test.txt', 'r', encoding='utf8')
print(textFile.readline())
print(textFile.readline())

# > 햄토리
# > 
# > 햄순이
#위 방식으로 한 줄씩 끝까지 읽을 수도 있음
#end=''를 사용해 여백줄을 없앨 수도 있음
textFile = open('test.txt', 'r', encoding='utf8')
while True:
    text = textFile.readline()
    if not text:
        break
    print(text, end='')
textFile.close()

# > 햄토리
# > 햄순이
#readlines()를 이용해 한 줄씩을 요소로 갖는 list형태로 사용가능
textFile = open('test.txt', 'r', encoding='utf8')
texts = textFile.readlines()
for text in texts:
    print(text, end='')
textFile.close()

# > 햄토리
# > 햄순이

4. pickle

pickle

-pickle 확장자 파일에 내용 저장, 읽기(binary 형태로 저장)

import pickle
textFile = open('text.pickle', 'wb')
human = {'이름': '햄토리', '나이': 10}
print(human)
pickle.dump(human, textFile)		# human 내용을 textFile에 저장
textFile.close()

# > {'이름': '햄토리', '나이': 10}
import pickle
textFile = open('text.pickle', 'rb')
human = pickle.load(textFile)		# textFile내용을 human에 불러옴
print(human)
textFile.close()

# > {'이름': '햄토리', '나이': 10}

5. with

with

-간편하게 파일에 내용을 저장, 읽을 수 있음

with open('test.txt', 'w', encoding='utf8') as human:
     human.write('햄토리')
with open('test.txt', 'r', encoding='utf8') as human:
    print(human.read())

# > 햄토리
profile
평생 개발자로 살고싶습니다

0개의 댓글