728x90
반응형
•파일의 읽고 쓰기
2023.01.19 - [파이썬] - 파이썬 - 읽고 쓰기와 모듈(Module)
모듈에 대한 내용을 다룰 때 모듈 기능에 파일을 만들고 저장하는 것을 모듈화 한 적이 있다.
이번에는 파일을 다루는데 좀 더 초점을 두고 정리하려고 한다.
프로그램을 만들 때 예외 사항이 발생해도 동작을 멈추지 않고 매끄럽게 진행되기 위해 사용하는 'try', 'except' 형태로 예시를 보자.
(예시1 - 기본적인 파일 관리)
import os
# 현재 작업하고 있는 경로 확인
# print(os.getcwd())
try:
location = 'C:/Users/Jo/OneDrive/Desktop/'
# 읽기
letter = open(location + "Test.txt", mode = 'r', encoding = 'UTF-8')
print(letter.read()) # 해당 문서의 내용이 끝날때까지 행단위로 출력된다.
letter.close() # 파일을 열거나 저장하거나 읽기 등의 사용을 마친 후에는 반드시 닫아줘야 메모리를 절약할 수 있다.
# 저장
reply = open(location + 'Test_reply.txt', mode = 'w', encoding = 'UTF-8') # 경로 생략
reply.write('스팸 메시지 사절입니다\n언제적 행운의 편지입니까?')
reply.close()
# 저장한 파일에 내용 추가
reply_add = open(location + 'Test_reply.txt', mode = 'a', encoding = 'UTF-8')
reply_add.write('\n다시는 이런 편지 보내지 말아주세요!')
reply_add.close()
reply_read = open(location + 'Test_reply.txt', mode = 'r', encoding = 'UTF-8')
print('\n' + reply_read.readline(2)) # 하나의 행에서 두 글자 읽기
line_text = reply_read.readlines() # 모든 행 읽기
print(line_text) # 모든 행의 내용을 출력
print(line_text[2]) # 세 번째 행 단위 내용만 출력
except Exception as e:
print('에러 내용 : ', e)
불러온 파일의 정체는 행운의 편지였다.
이 편지는 영국에서 최초로 시작되어 일년에 한바퀴를 돌면서 받는 사람에게 행운을 주었고 지금은 당신에게로 옮겨진 이 편지는 4일 안에 당신 곁을 떠나야 합니다. 이 편지를 포함해서 7통을 행운이 필요한 사람에게 보내 주셔야 합니다. 복사를 해도 좋습니다. 혹 미신이라 하실지 모르지만 사실입니다. 영국에서 HGXWCH이라는 사람은 1930년에 이 편지를 받았습니다. 그는 비서에게 복사해서 보내라고 했습니다. 며칠 뒤에 복권이 당첨되어 20억을 받았습니다. 어떤 이는 이 편지를 받았으나 96시간 이내 자신의 손에서 떠나야 한다는 사실을 잊었습니다. 그는 곧 사직되었습니다. 나중에야 이 사실을 알고 7통의 편지를 보냈는데 다시 좋은 직장을 얻었습니다. 미국의 케네디 대통령은 이 편지를 받았지만 그냥 버렸습니다. 결국 9일 후 그는 암살당했습니다. 기억해 주세요. 이 편지를 보내면 7년의 행운이 있을 것이고 그렇지 않으면 3년의 불행이 있을 것입니다. 그리고 이 편지를 버리거나 낙서를 해서는 절대로 안됩니다. 7통입니다. 이 편지를 받은 사람은 행운이 깃들것입니다. 힘들겠지만 좋은게 좋다고 생각하세요. 7년의 행운을 빌면서... 스팸 [' 메시지 사절입니다\n', '언제적 행운의 편지입니까?\n', '다시는 이런 편지 보내지 말아주세요!'] 다시는 이런 편지 보내지 말아주세요! |
반응형
(예시2 - with문을 이용한 파일 관리)
반면 매번 파일 관련된 명령어를 사용할 때 메모리 관리를 위해 close 명령문을 사용해 줘야 편리하게 작성하기 위해 사용하는 구문이 'with'문이다. with문으로 파일을 관리하면 자동으로 close를 해주기 때문에 메모리 용량을 확인해야 되는 귀찮음이 해소된다.
# with를 사용하면 close가 자동으로 적용된다.
try:
location = 'C:/Users/Jo/OneDrive/Desktop/'
with open(location + 'test_file.txt', mode = 'w', encoding = 'UTF-8') as tf:
tf.write('거울은 초록색이다.\n')
tf.write('땅콩은 견과류가 아니다.')
with open(location + 'test_file.txt', mode = 'r', encoding = 'UTF-8') as tf:
print(tf.read())
except Exception as e:
print(e)
놀라운 사실을 저장하고 무사히 읽어올 수 있었다.
거울은 초록색이다. 땅콩은 견과류가 아니다. |
(추가 내용)
try, except 구문에서 마지막에 finally를 써줄 수 있는데 해당 부분은 에러 여부와는 상관없이 무조건 수행되는 부분이다.
728x90
반응형
'파이썬(Python)' 카테고리의 다른 글
파이썬 - 내장 DB(SQL), 서버 DB(SQL) (0) | 2023.03.04 |
---|---|
파이썬 - 클래스(3) (0) | 2023.02.18 |
파이썬 - 클래스(2) (0) | 2023.02.08 |
파이썬 - 클래스(1) (0) | 2023.01.25 |
파이썬 - 읽고 쓰기와 모듈(Module) (2) | 2023.01.19 |