Python 에서 csv 모듈 의 기본 사용 튜 토리 얼

5178 단어 pythoncsv모듈
1.csv 안내
4CSV (Comma Separated Values)즉,쉼표 구분자(문자 구분자 라 고도 부 르 는데 구분자 가 쉼표 가 아 닐 수 있 기 때 문)는 자주 사용 하 는 텍스트 입 니 다.
숫자 나 문 자 를 포함 하여 표 데 이 터 를 저장 하 는 형식 입 니 다.많은 프로그램 들 이 데 이 터 를 처리 할 때 csv 와 같은 형식의 파일 을 만 날 수 있 습 니 다.
광범 위 한(Kaggle 의 일부 제목 에서 제공 하 는 데 이 터 는 csv 형식)csv 는 광범 위 하 게 사용 되 지만 통용 되 는 기준 이 없 기 때문에 csv 를 처리 하고 있 습 니 다.
형식 에 문제 가 자주 발생 합 니 다.다행히 python 에 csv 모듈 이 내장 되 어 있 습 니 다.csv 모듈 에서 가장 많이 사용 되 는 함수 들 을 간단하게 소개 합 니 다.
더 많은 내용 참고 바 랍 니 다.
2.csv 모듈 의 함수
reader(csvfile, dialect='excel', **fmtparams)
매개 변수 설명:
csvfile,교체(Iterator)를 지원 하 는 대상 이 어야 합 니 다.파일(file)대상 이나 목록(list)대상 일 수 있 습 니 다.파일 이 맞다 면.
예,열 때"b"표지 파 라 메 터 를 추가 해 야 합 니 다.
dialect,인 코딩 스타일,기본적으로 엑셀 스타일,즉 쉼표(,)로 구분 되 며,dialect 방식 도 사용자 정의 가 지원 되 며,register 호출 을 통 해dialect 방법 으로 등록 합 니 다.다음 글 에서 언급 하 겠 습 니 다.
fmtpram,포맷 매개 변 수 는 이전 dialect 대상 이 지정 한 인 코딩 스타일 을 덮어 씁 니 다.

import csv
with open('test.csv','rb') as myFile:
    lines=csv.reader(myFile)
    for line in lines:
        print line

'test.csv'는 파일 이름 입 니 다.'rb'의 r 는'읽 기'모드 를 표시 합 니 다.파일 대상 이기 때문에'b'를 추가 합 니 다.open()파일 대상 을 되 돌려 줍 니 다.
my File,reader(my File)는 첫 번 째 매개 변수 만 들 어 왔 고,다른 두 매개 변 수 는 결 성 된 값,즉 엑셀 스타일 로 읽 었 습 니 다.reader()하나 되 돌려 주기
reader 대상 lines,lines 는 list 입 니 다.방법 lines.next()를 호출 할 때 string 을 되 돌려 줍 니 다.위의 프로그램의 효 과 는 csv 를
파일 의 텍스트 를 줄 별로 인쇄 합 니 다.모든 줄 의 요 소 는 쉼표 로 구 분 됩 니 다.'구 분 됩 니 다.
내 test.csv 파일 에 저 장 된 데 이 터 는 그림 과 같다.

프로그램 출력:
['1', '2']
['3', 'a']
['4', 'b']
보충:reader 대상 은 라인num、dialect、next()
writer(csvfile, dialect='excel', **fmtparams)
매개 변수의 의 미 는 위 와 같 습 니 다.여 기 는 군말 하지 않 고 바로 관례 를 올 립 니 다.

with open('t.csv','wb') as myFile:    
    myWriter=csv.writer(myFile)
    myWriter.writerow([7,'g'])
    myWriter.writerow([8,'h'])
    myList=[[1,2,3],[4,5,6]]
    myWriter.writerows(myList)

'w'는 쓰기 모드 를 나타 낸다.
우선 open()함수 가 현재 경로 의't.csv'라 는 파일 을 열 고 이 파일 이 존재 하지 않 으 면 만 들 고 my File 파일 대상 을 되 돌려 줍 니 다.
csv.writer(my File)는 writer 대상 my Writer 를 되 돌려 줍 니 다.
writerow()방법 은 한 줄 한 줄 쓰 는 것 이 고,writerows 방법 은 한 번 에 여러 줄 을 쓰 는 것 입 니 다.
메모:파일't.csv'가 미리 존재 한다 면 writer 함 수 를 호출 하면 원본 파일 의 텍스트 를 비우 고 writerow/writerows 방법 을 실행 합 니 다.
보충:writerow,writerows 를 제외 하고 writer 대상 은 writeheader,dialect 등 다른 방법 도 제공 했다.
register_dialect(name, [dialect, ]**fmtparams)
이 함 수 는 dialect 를 사용자 정의 하 는 데 사 용 됩 니 다.
매개 변수 설명:
name,사용자 정의 dialect 의 이름,예 를 들 어 기본 값 은'excel'입 니 다.'my dialect'로 정의 할 수 있 습 니 다.
[dialect,]*fmtprams,dialect 형식 매개 변수,delimiter(구분자,기본 값 은 쉼표),quotechar,
quoting 등등 참고 할 수 있 습 니 다.

csv.register_dialect('mydialect',delimiter='|', quoting=csv.QUOTE_ALL)

위의 줄 은 my dialect 라 는 dialect 를 사용자 정의 하 였 으 며,매개 변 수 는 delimiter 와 quoting 두 개 만 설정 하 였 으 며,다른 것 은 여전히 사용 되 고 있 습 니 다.
기본 값 은'|'을 구분자 로 합 니 다.이제 우 리 는'엑셀'을 사용 하 는 것 처럼'my dialect'를 사용 할 수 있다.효과 좀 봅 시다.
내 test.csv 에 다음 과 같은 데 이 터 를 저장 합 니 다.

'my dialect'스타일 로 인쇄:

with open('test.csv','rb') as myFile:
    lines=csv.reader(myFile,'mydialect')
    print lines.line_num
    for line in lines:
        print line
출력:
['1,2', '3']
['4,5', '6']
이 제 는'|'을 구분자 로 하여 1 과 2 가 하나의 문자열 을 합성 하 였 습 니 다.(1 과 2 사이 의 구분자 가 쉼표 이 고 my dialect 스타일 의 구분자 이기 때 문 입 니 다.
부 호 는'|')이 고 3 개의 문자열 이 있 습 니 다.
writer()함수 에 대해 서도 my dialect 를 매개 변수 로 전달 할 수 있 습 니 다.여 기 는 군말 하지 않 습 니 다.
unregister_dialect(name)
이 함 수 는 사용자 정의 dialect 를 로그아웃 하 는 데 사 용 됩 니 다.
이 밖 에 csv 모듈 은 get 도 제공 합 니 다.dialect(name)、list_dialects()、field_size_limit([new_limit])등 함수 비교
간단 해 요.직접 해 보 세 요.예 를 들 어 listdialects()함 수 는 현재 csv 모듈 의 모든 dialect 를 보 여 줍 니 다.
print csv.list_dialects()
출력:
['excel-tab', 'excel', 'mydialect']
'my dialect'는 사용자 정의 입 니 다.'엑셀-tab','엑셀'은 모두 자체 적 인 dialect 입 니 다.그 중에서'엑셀-tab'은'엑셀'과 차이 가 많 지 않 습 니 다.
단지 그것 은 tab 를 구분자 로 할 뿐이다.
csv 모듈 도 정의 되 었 습 니 다.
일부 유형:DictReader,DictWriter,Dialect 등,DictReader 와 DictWriter 는 reader 와 writer 와 유사 하 다.
일부 상수:QUOTEALL、QUOTE_MINIMAL、.QUOTE_NONNOMERIC 등 이 상수 들 은 Dialects and Formatting Parameters 의 값 으로 사용 할 수 있다.
여기에 쓰 고 다른 것 은 나중에 업데이트 하 는 데 쓰 세 요.
총결산
파 이 썬 에서 csv 모듈 의 기본 사용 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 csv 모듈 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기