파이썬 기초자가 질문드립니다.

파이썬 기초자가 질문드립니다.

QA

파이썬 기초자가 질문드립니다.

본문

안녕하세요.

정규화된 데이터가 들어있는 파일을 파이썬으로 열었어요

 

정규화까진 아니고

값들이 콤마로 구분되어있습니다.

csv라고 생각하시면 돼요

 

 

현재는

파일을 읽어서 루프를 돌면서

파일을 readline()으로 한줄 읽어서

 

콤마로 split한다음에 array로 만든다음 특정한 컬럼 값을 바꾸고 있어요

 

 

 

이과정을 한줄 한줄 읽지 않고

파일 전체를 읽어서

2차원 배열로 만들고

특정 컬럼의 값을 replace하고 싶어요

 

뭔가 readline하지 않고

readlines로 한방에 읽는다음

2차원 배열로 한방에 저장하는게 있을것 같긴한데..

 

검색하지 않고 sir에 왔어요~

 

 

 

이 질문에 댓글 쓰기 :

답변 2

csv 나 엑셀형식은 판다스 추천합니다.

구글에서 pandas csv 로 만 검색해도 수두룩 하겠네요!

안녕하세요? 즐거운 연휴 보내고 계시는지요? ^^

 

파이썬에서는 CSV 파일의 입출력을 처리하기 위하여 csv 모듈을 두고 있습니다.

 

 

우선 CSV 파일이 어떤 형식인지에 따라 처리가 조금 상이합니다.

 

MS 엑셀에는 'CSV UTF-8'과 'CSV' 형식이 있습니다.

 

보다 보편적인 후자의 형식일 것이라고 추측하고 설명드리겠습니다.

(행은 엔터로, 각 행의 요소는 콜론으로 구분되어 있습니다.)

 

 

가장 간단한 방법으로는 다음과 같이 처리할 수 있습니다.

 


import csv
 
data = list(csv.reader(open('csv.csv', 'r', encoding='UTF-8')))

 

실행해보면 data 변수에 2차원 리스트가 들어가 있음을 확인할 수 있습니다.

 

여기에서 list() 함수를 사용한 이유는 csv.reader() 메서드가 _csv.reader object를 반환하기 때문입니다.

 

파이썬에서 주로 사용하는 표준적인 파일입출력 구문에 가깝게 표현을 하면 다음과 같습니다.

 


import csv
 
with open('csv.csv', 'r', encoding='UTF-8') as f:
    data = list(csv.reader(f))

 

 

한편 CSV 파일로 저장할 때에는 csv.writer()의 writerows() 메서드를 이용하여 한 방에 저장할 수 있습니다 ^^

 

그럼 행복한 명절되시고, 새해 복 많이 받으세요!

 

 

+) 엑셀 등에서 해당 CSV 파일이 열려있으면, 파이썬 CSV 모듈에서 읽을 때 에러가 발생할 수 있습니다. 다만 r 모드로 읽는 것은 별다른 문제가 없다고 알고 있네요.

답변을 작성하시기 전에 로그인 해주세요.
전체 127
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT