<jupyter_start><jupyter_text>File - 파일- 파이썬을 이용해서 파일을 읽고, 쓰기가  가능합니다.- 파일을 읽고 쓸 때의 파일 작성에 대한 옵션    - w : 파일쓰기 (덮어쓰기)    - x : 파일쓰기 (파일이 존재하면 에러가 발생)    - r : 파일읽기    - a : 파일에 추가쓰기 (append)    - 파일을 읽고 쓸 때의 파일 타입에 대한 옵션    - t : 텍스트 데이터 타입 : 문자열을 저장할 때 사용    - b : 이진 데이터 타입 : 객체를 저장할 때 사용    - open : 파일을 열 때 사용하는 함수 : open("파일경로 및 이름","옵션")  파일쓰기<jupyter_code>s = """data
science
fighting!!
"""
f = open("test.text", "wt")
f.write(s)
f.close() # 꼭 해줘야함.
# print를 활용해서 파일쓰기
f = open("test2.txt","wt")
print(s, file=f, end="")
f.close()
# xt
s = "datascience"
f = open("test2.txt","xt")
f.write(s)
# 이진파일쓰기 - binary 파일 쓰기
# wb
# bytes 함수 : 이진데이터를 바꿔주는 함수
data = bytes(range(10))
data
f = open("range.b","wb")
f.write(data)
f.close()<jupyter_output><empty_output><jupyter_text>파일 읽기<jupyter_code># 이진파일 읽기
f = open("range.b","rb")
data = f.read()
f.close()
data, list(data)
# 텍스트 파일 읽기
f = open("test2.txt","rt")
s = f.read()
f.close()
# 텍스트 파일 일부만 읽어 오기
f = open("test.text","rt")
s = f.read(10) #10자만 읽어오기
f.close()
print(s)
# 텍스트 파일 한줄 읽어오기
f = open("test.text","rt")
s = f.readline()
f.close()
print(s)
# 텍스트 파일 두줄 읽어오기
f = open("test.text","rt")
s = f.readline()
print(s)
s = f.readline()
print(s)
f.close()

f = open("test.text","rt")
s = f.readlines()
f.close()
print(s)<jupyter_output>['data\n', 'science\n', 'fighting!!\n']<jupyter_text>with- 파일을 열 때 close함수를 호출하지 않아도 됩니다.<jupyter_code>with open("test.text","rt") as f :
    s = f.read()
    print(s)<jupyter_output>data
science
fighting!!<jupyter_text>Pickle - 피클- 객체를 저장하는 것을 직렬화라고 합니다.- pickle 파이썬에서 객체를 직렬화해서 저장하고 복원하는 모듈<jupyter_code>import pickle
class A:
    def __init__(self, data):
        self.data = data
    def disp(self):
        print(self.data)

a = A("pickle test")
a.disp()
with open("obj.p","wb") as f:
    pickle.dump(a, f) #dump(obj, file): 객체 저장
with open("obj.p", "rb") as f:
    load_a = pickle.load(f)
load_a.disp()<jupyter_output>pickle test
{'fraction_non_alphanumeric': 0.18889465490399585, 'fraction_numerical': 0.00467047223663726, 'mean_word_length': 3.6014319809069213, 'pattern_counts': {'":': 0, '<': 14, '<?xml version=': 0, '>': 14, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '4', 'dir': 'jupyter-structured-clean-dedup', 'id': '500503', 'license': 'MIT', 'n_tokens_mistral': 1129, 'n_tokens_neox': 1319, 'n_words': 231, 'path': 'python/01_python_syntax/08_File_Pickle.ipynb', 'repo_name': 'Junhojuno/TIL', 'size': '1927'}