프로그래밍 문법/python

파일 불러오기 , 쓰기

씩씩한 IT블로그 2020. 6. 22. 22:25
반응형

1. 파일 읽어오기

(1) 내장 모듈

fileMatrix = []
with open("21.csv",'r') as file:
    for lineContent in file:
        fileMatrix.append(lineContent.strip('\n').split(","))

for lineContent in file:

- file에 있는 한줄씩 lineContent에 저장 (문자열형식)

lineContent.strip('\n').split(",")

- lineContent에 \n은 없앰

- split(",") : 리스트를 만들어서 ","를 기준으로 나누어서 한 index씩 넣음

fileMatrix = []
with open('data.csv','r',encoding='utf-8') as fileOpen:
    lineContent=fileOpen.readline()
    while lineContent!='' :
         fileMatrix.append(lineContent.strip('\n').split(","))

 

lineContent=fileOpen.readline()

- 해당파일의 한줄을 읽음 (열구분은 ',' 로 함)

- 문자열 형식으로 반환

(1) pandas 모듈

import pandas as pd

# pandas dataframe type으로 저장된다.
# 하위폴더에 데이터를 읽고싶다면 "(상위폴더)\\(하위폴더)\\(최종파일)" 형식으로 경로저장
csv=pd.read_csv("NYPD_Complaint_Data_Current_YTD.csv")

print(csv)

print(csv["KY_CD"]) # dictinary형으로 읽을 수 있다

판다스 모듈을 이용하면 위와같이 읽을 수 있다.

2. 파일 쓰기

(1) 내장모듈

with open('to_seoul.csv','w',encoding='utf-8',newline='') as fileWrite:

- 쓰기형식일때 'w'

- 'cp949' 에러 발생시 encoding='utf-8'

- newline='' 을 하면 빈 줄 없이 한줄씩 써진다.

myWriter=csv.writer(fileWrite)

- 파일을 열었던 변수인 fileWrite를 넣어서 csv모듈을 가진 myWirter변수를 생성

myWriter.writerow([리스트형식])

- writerow 이후에는 하나의 리스트가 빈칸을 구분기준으로 하여 한줄씩 들어간다

myWriter.writerows([2차원 리스트형식])

- writerows 이후에는 2차원 리스트형식이 나오고 한줄에 한행씩 입력이 된다.

(2) 판다스 모듈

#df는 dataframe, index=False옵션을 이용해서 index 컬럼의 쓰기를 하지 않을 수도 있다.
df.to_csv(file_name+"W.csv",mode='w')
반응형