Python 에서 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 모듈 의 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.