📖 UNIT 27. 파일 사용하기
📒파일에 문자열 읽기, 쓰기
file = open('unit27.txt', 'w')
file.write('hihi')
file.close()
먼저, 파일 입출력은 위와 같은 과정을 거치게 된다.
한 줄 한 줄 보자면, 먼저 unit27.txt라는 파일을 쓰기 전용으로 불러온다.
가장 중요한 것은, 파일을 무조건 다시 닫아야 한다는 것이다,
이게 귀찮다고 느낄 수도 있다.
with open(파일이름, 파일모드) as 파일객체:
코드
그럼 위와 같이 코딩을 해보자. 파일이 열려있는 동안만 해당되는 코드를 수행하는 것이다.
당연히 그 코드가 끝이 난다면, 파일은 바로 닫히게 된다.
📒본격적으로 파일에 문자열 읽기, 쓰기
with open('unit27.txt', 'w') as file:
for i in range(3):
file.write('Hello, world! {0}\n'.format(i))
파일에는 내용들이 잘 들어갔음을 확인할 수 있다. 만약에 unit27.txt라는 파일이 비어져있는 파일이 아니라면 어떡할까??
기존 파일의 데이터를 지워버리고 아예 새로 써버린다. 코딩을 할 때 이러한 점은 조심해야 할 것 같다.
📒파이썬 객체를 파일에 저장하기
먼저 파이썬 객체를 파일에 저장하는 행위를 피클링이라고 한다.
import pickle
name = 'mm0ck3r'
age = 20
address = 'Seoul-Si'
scores = {'korean': 90, 'english': 95, 'mathematics': 85, 'science': 82}
with open('unit27.p', 'wb') as file:
pickle.dump(name, file)
pickle.dump(age, file)
pickle.dump(address, file)
pickle.dump(scores, file)
먼저 이런 코드를 써보자.
인코딩이 깨짐을 확인할 수 있다. 어떻게 해야하지 utf-8로 해보자.
아 깨지는것이 당연하다. 그 이유는 피클은 바이너리로 저장시키기 때문이다.
이제 이 unit27.p 파일을 읽어보자.
import pickle
with open('unit27.p', 'rb') as file:
name = pickle.load(file)
age = pickle.load(file)
address = pickle.load(file)
scores = pickle.load(file)
print(name)
print(age)
print(address)
print(scores)
제대로 실행이 된다 !!!
앞으로 자주 보게될 그림같다. 좀 익숙해질 필요가 있겠다.
📖 UNIT 28. 회문판별과 N-gram 만들기.
📒회문판별
먼저, 회문(palindrome)의 정의를 좀 알아보자.
회문은 순서를 거꾸로 해도 같은 문자열을 말한다. 즉 가로로 대칭인 문자열을 말하는 것 같다.
문자열을 받으면 회문판별하는 프로그램을 만들어보자.
성공이다 !@!@!@!
a = input('input the Sting => ')
if(a==a[::-1]):
print('right')
else:
print('wrong')
사실 a의 인덱스에서 ::-1로 지정해주면 바로 역순으로 출력이 된다.
그니까 a와 a[::-1]을 비교해주면 문제는 풀리게 되는 것이다.
'스터디 그룹 > ProjectH4C' 카테고리의 다른 글
ProjectH4C 1개월 2주차 과제 (UNIT 32, 33) (0) | 2021.01.31 |
---|---|
ProjectH4C 1개월 2주차 과제 (UNIT 29,30,31) 여기도 스택프레임이. (0) | 2021.01.31 |
ProjectH4C 1개월 2주차 과제 (UNIT 25, 26) (0) | 2021.01.28 |
ProjectH4C 1개월 2주차 과제 (UNIT 24) (0) | 2021.01.28 |
ProjectH4C 1개월 2주차 과제 (UNIT 23) (0) | 2021.01.27 |