파이썬을 이용한 파일 입/출력에 대해서
알아보겠습니다.
일반적으로
새로운 데이터 파일을 생성하기 위해서는
① 파일 열기
② 데이터 입력하기
③ 파일 저장 및 닫기
의 과정을 거쳐야 하고요.
생성한 파일을 분석하기 위해서
① 생성한 파일을 열고,
② 파이썬 환경으로 읽고,
③ 파일을 닫은 후
데이터 분석을 진행하게 됩니다.
물론, pandas 라이브러리를 활용해서도
가능하지만,
이번 포스팅에서는
파일 입/출력 관점에서
실습을 진행하도록 하겠습니다.
텍스트 파일 생성하기 1
파이썬 코드를 활용해서
텍스트 파일 하나를 생성해 보겠습니다.
## 텍스트 파일 생성
newFile = open("C:/HJM/Python_apply/new_text_file.txt", mode = "w")
# 텍스트 파일(new_text_file.txt)을 생성하여 데이터 작성할 준비하기
newFile.write("2월 22일,2월 23일,2월 24일,2월 25일,2월 26일\n")
# 텍스트 파일(new_text_file.txt)에
# "2월 22일,2월 23일,2월 24일,2월 25일,2월 26일\n" 값 작성하기
newFile.write("171452,170016,165890,166209,163566")
# 텍스트 파일(new_text_file.txt)에
# "171452,170016,165890,166209,163566" 값 작성하기
newFile.close()
# 파일 닫기
위의 명령어를 실행하면,
"C:/HJM/Python_apply" 경로에
new_text_file.txt 파일이 생성되었고,
해당 파일을 열어보면
와 같은 값이 저장되어 있음을 확인할 수 있어요.
텍스트 파일 생성하기 2
(with 명령어 사용)
파일을 생성하기 위해서
open 함수를 사용한 경우,
항상 .close() 명령어를 입력해 주어야 합니다.
하지만, with 명령어를 사용하면
.close() 명령어 없이
텍스트 파일을 생성할 수 있어요.
with open("C:/HJM/Python_apply/new_text_file2.txt", mode = "w") as newFile2:
newFile2.write("2월 22일,2월 23일,2월 24일,2월 25일,2월 26일\n")
newFile2.write("171452,170016,165890,166209,163566")
위의 명령어를 실행하면,
"C:/HJM/Python_apply" 경로에
new_text_file2.txt 파일이 생성되었고,
이 파일을 열어보면,
new_text_file.txt 파일과
동일한 값을 가지는 파일이
생성되었음을 알 수 있습니다.
파일 읽기
이제는 이렇게 생성된 파일을
파이썬 내의 객체로 읽어와 보겠습니다.
## 파일 읽기
fileRead = open("C:/HJM/Python_apply/new_text_file2.txt", mode = "r")
# 텍스트 파일(new_text_file2.txt)을 열어서 읽을 준비하기
fileReadPyhon = fileRead.read()
# fileReadPyhon 객체에 데이터 읽어 들이기
fileRead.close()
# 파일 닫기
print(fileReadPyhon)
# fileReadPyhon 객체 출력
이제는 반대로 파이썬에서 생성한 데이터를
외부로 저장해 보도록 할게요.
json 모듈과 pickle 모듈이 있는데요.
사용법은 동일한데요.
pickle 모듈을 사용할 경우,
데이터를 binary 형태로 압축하여 저장하기 때문에
저장 용량을 크게 줄일 수 있어요.
데이터 내보내기
(json 모듈 사용)
먼저 json 모듈을 사용해서 데이터를
내보내 보도록 하겠습니다.
## 임시 데이터 생성
tempData = ["data1","data2","data3"]
import json as js # json 모듈 사용을 위한 로드
jsonTestData = open("C:/HJM/Python_apply/new_text_file3.txt", mode = "w")
# 텍스트 파일(new_text_file3.txt)을 생성하여 데이터 작성할 준비하기
js.dump(testData, jsonTestData)
# testData에 저장된 데이터를 new_text_file3.txt에 쓰기
jsonTestData.close()
# 파일 닫기
그러면, "C:/HJM/Python_apply" 경로에
["data1","data2","data3"] 데이터가
저장되어 있는 것을 보실 수 있어요.
데이터 불러오기
(json 모듈 사용)
이제 json 모듈을 사용해서 데이터를
불러와 보도록 하겠습니다.
import json as js # json 모듈 사용을 위한 로드
jsonTestData = open("C:/HJM/Python_apply/new_text_file3.txt", mode = "r")
# 텍스트 파일(new_text_file3.txt)을 읽어올 준비하기
jsonInData = js.load(jsonTestData)
# jsonTestData에 저장된 데이터를 jsonInData 객체에 저장
jsonTestData.close()
# 파일 닫기
print(jsonInData )
데이터 내보내기
(pickle 모듈 사용)
먼저 pickle 모듈을 사용해서 데이터를
내보내 보도록 하겠습니다.
mode 옵션이 조금 다릅니다.
주의하세요.
## 파이썬에서 생성한 데이터 바이너리(압축) 형태의 데이터로 내보내기
testData = ["data1", "data2", "data3", "data4", "data5"]
import pickle # pickle 모듈 사용을 위한 로드
pickleTestData = open("C:/HJM/Python_apply/new_text_file4.txt", mode = "wb")
# 텍스트 파일(new_text_file4.txt)을 생성하여
# 바이너리 형태로 데이터를 내보낼 준비하기
pickle.dump(testData, pickleTestData)
# testData에 저장된 데이터를 new_text_file4.txt에 쓰기
pickleTestData.close()
# 파일 닫기
그러면, "C:/HJM/Python_apply" 경로에
["data1","data2","data3","data4","data5"] 데이터가
저장되어 있는 것을 보실 수 있어요.
깨져 보이는 글자 사이로
data1, data2, data3, data4, data5가
보이실 거예요.
바이너리 형태로 저장되어 있기 때문에
글자가 깨져 보이는 거고요.
이걸 다시 파이썬 객체로 불러오면,
정상적으로 보이게 됩니다.
데이터 불러오기
(pickle 모듈 사용)
이제 pickle 모듈을 사용해서 데이터를
불러와 보도록 하겠습니다.
import pickle # pickle 모듈 사용을 위한 로드
pickleTestData = open("C:/HJM/Python_apply/new_text_file4.txt", mode = "rb")
# 텍스트 파일(new_text_file4.txt)을 읽어올 준비하기
pickleInData = js.load(pickleTestData)
# pickleTestData에 저장된 데이터를 pickleInData 객체에 저장
jsonTestData.close()
# 파일 닫기
print(pickleInData )
이상 데이터 입/출력에 대해서 알아보았습니다.
'Python > 데이터 다루기' 카테고리의 다른 글
Python에서 JSON을 사용하는 방법(for 초급자) (0) | 2022.05.13 |
---|---|
JSON에 대한 소개 (0) | 2022.05.08 |
데이터 분석을 위한 강력한 Pandas 함수 1 (0) | 2022.05.01 |
pandas를 활용한 데이터 정리 (0) | 2022.04.30 |
오픈 API를 활용한 공공데이터 불러오기(데이터 포맷: json) with Python (4) | 2022.01.29 |
댓글