파일 입출력

JoyJuhee·2022년 10월 24일
0

Python

목록 보기
11/22
post-thumbnail

파일 입출력

1) 사용 이유

  • 파일로부터 데이터를 읽어와서 프로그램에 사용하기 위해
  • 프로그램에서 만든 데이터를 파일형태로 저장하기 위해

2) 파일 열기 모드

  • w : 쓰기 모드(write) --> 덮어쓰기 (기존의 값이 있더라도 덮어쓴다.)
  • a : 추가 모드(append) --> 이어쓰기
  • r : 읽기 모드(read)
file = open("data.txt", "w") # 만든 파일을 객체 형태로 가져온다. 
file.write("1.스타트코딩과 함께 파이썬 공부")
file.close()

# 파일 열기 -> 파일 작업 -> 파일 닫기 

3) 파일 추가

file = open("data.txt", "a") # 만든 파일을 객체 형태로 가져온다. 
file.write("2.비전공자도 정말 쉽게 배울 수 있습니다.")
file.close()

# 파일 열기 -> 파일 작업 -> 파일 닫기 

4) 파일 읽기

file = open("data.txt","r")
data = file.read()
file.close()

👉 정리

# 1. 파일 쓰기
file = open("data.txt", "w") # 루트 디렉토리 바로 아래에 생긴다.
file = open('./myvenv/Chapter10/data.txt', 'w', encoding='utf8') #./는 루트 디렉토리임
file.write('1. 스타트코딩과 함께 파이썬 공부')
file.close()

# 2. 파일 추가
file = open('./myvenv/Chapter10/data.txt', 'a', encoding='utf8')
file.write('\n2. 비전공자도 정말 쉽게 배울 수 있습니다.')
file.close()

# 3. 파일 읽기
file = open('./myvenv/Chapter10/data.txt', 'r', encoding='utf8')

# 3-1. 파일 전체 읽기
data = file.read()
print(data)
file.close()

# 3.2 파일 한 줄 읽기
while True:
    data = file.readline() # 한줄씩 읽음
    print(data, end="") # print를 하면 자동으로 한 줄을 띄어주기 때문에 ""로 붙여줘야 한다. 
    if data == "":
        break
file.close()

pickle 모듈

: 파일에 파이썬 객체 저장하기
❓ 왜 사용 : 텍스트 이외의 자료형을 파일로 저장하기 위하여 pickle이라는 모듈을 제공한다. (출처 : https://wayhome25.github.io/cs/2017/04/04/cs-04/)

# 1. 파이썬 객체를 pickle로 저장하기
import pickle

data = {
    "목표1" : "매일 팔굽혀 펴기 100회",
    "목표2" : "매일 코딩 공부 1시간"
}

file = open("./myvenv/Chapter10/data.pickle", "wb") # wb는 write binary약자로 컴퓨터가 바로 읽을 수있게 만든다.
pickle.dump(data, file) # file에 data를 넣어준다. 
file.close()

# 2. pickle 파일 파이썬으로 가져오기
file = open("./myvenv/Chapter10/data.pickle", "rb")
data = pickle.load(file)
print(data)
file.close()

# with 구문을 사용하면 자동으로 file close 해준다. 
with open("./myvenv/Chapter10/data.txt", "r", encoding="utf8") as file:
    data  = file.read()
    print(data)
    

csv 파일 입출력

1) csv(comma-seperated values)
: 데이터가 콤마로 구분된 텍스트 파일 형식

#####파일 입력(쓰기)#####

import csv

data = [
    ["이름", "반", "번호"],
    ["재석", 1, 20],
    ["홍철", 3, 8],
    ["형돈", 5, 32]
]

file = open("./myvenv/Chapter10/student.csv", "w", newline="", encoding="utf-8-sig") 
#자동으로 csv 파일을 만들때 한줄씩 띄우기가 돼서 ""으로 막아준다.
writer = csv.writer(file)

for d  in data:
    writer.writerow(d) #한줄씩 저장

file.close()
#####파일 출력(읽기)#####

import csv

file = open("./myvenv/Chapter10/student.csv", "r", encoding="utf-8-sig")
reader = csv.reader(file)
for data in reader :
    print(data)
file.close()

출처 : 패스트캠퍼스 Python & Django로 시작하는 웹 프로그래밍

0개의 댓글