csv – CSV 파일 읽기 및 쓰기 ¶

모듈 내용 ¶

csv 모듈은 다음 기능을 정의합니다.

csv. reader (csvfile, dialect = “excel”, ** fmtparams ) ¶

Return a reader object that will iterate over line in the given csvfile.csvfile can be any object that supports the iterator protocol and returns astring every time the __next__() method is called — 파일 개체와 목록 개체가 모두 적합합니다. csvfile이 파일 객체 인 경우 newline=""로 열어야합니다. 1 특정 CSV 방언에 특정한 매개 변수 세트를 정의하는 데 사용되는 선택적 dialect 매개 변수를 제공 할 수 있습니다. Dialect 클래스의 하위 클래스 인스턴스이거나 list_dialects() 함수에 의해 반환 된 문자열 중 하나 일 수 있습니다. 다른 선택적 fmtparams 키워드 인수를 지정하여 currentdialect의 개별 형식 지정 매개 변수를 재정의 할 수 있습니다. dialect 및 형식화 매개 변수에 대한 자세한 내용은 Dialects and Formatting Parameters 섹션을 참조하십시오.

csv 파일에서 읽은 각 행은 문자열 목록으로 반환됩니다. QUOTE_NONNUMERIC 형식 옵션이 지정되지 않으면 자동 데이터 유형 변환이 수행되지 않습니다 (이 경우 인용되지 않은 필드가 부동 소수점으로 변환 됨).

간단한 사용 예 :

csv. writer (csvfile, dialect = “excel”, ** fmtparams) ¶

변환을 담당하는 작성기 객체를 반환합니다. 사용자의 데이터를 주어진 파일 류 객체의 구분 된 문자열로 변환합니다. csvfile은 write() 메소드가있는 모든 객체가 될 수 있습니다. csvfile이 파일 객체 인 경우 newline="" 1로 열어야합니다. 특정 CSV 방언에 특정한 매개 변수 집합을 정의하는 데 사용되는 선택적 dialect 매개 변수를 지정할 수 있습니다. Dialect 클래스의 하위 클래스 인스턴스이거나 list_dialects() 함수에서 반환 된 문자열 중 하나 일 수 있습니다. 다른 선택적 fmtparams 키워드 인수를 지정하여 currentdialect의 개별 형식 지정 매개 변수를 재정의 할 수 있습니다. dialect 및 형식화 매개 변수에 대한 자세한 내용은 Dialects and Formatting Parameters 섹션을 참조하십시오. DB API를 구현하는 모듈과 쉽게 인터페이스 할 수 있도록 None 값이 빈 문자열로 작성됩니다. 이 변환은 가역적 변환이 아니지만 cursor.fetch* 호출에서 반환 된 데이터를 전처리하지 않고 SQL NULL 데이터 값을 CSV 파일에 쉽게 덤프 할 수 있습니다. str() 작성하기 전에

간단한 사용 예 :

csv. register_dialect (이름]) ¶

방언을 이름과 연결합니다. 이름은 문자열이어야합니다. 방언은 Dialect의 하위 클래스를 전달하거나 fmtparams 키워드 인수를 전달하거나 둘 다 전달하여 키워드 인수가 방언의 매개 변수를 재정 의하여 지정할 수 있습니다. 방언 및 형식 매개 변수에 대한 자세한 내용은 방언 및 형식 매개 변수 섹션을 참조하세요.

csv. unregister_dialect (이름) ¶

방언 레지스트리에서 이름과 관련된 방언을 삭제합니다. 이름이 등록 된 방언 이름이 아닌 경우 Error가 발생합니다.

csv. get_dialect (name) ¶

이름과 관련된 방언을 반환합니다. 이름이 등록 된 방언 이름이 아닌 경우 Error가 발생합니다. 이 함수는 변경 불가능한 Dialect를 반환합니다.

csv. list_dialects () ¶

등록 된 모든 방언의 이름을 반환합니다.

csv. field_size_limit () ¶

현재 최대 필드 크기를 반환합니다. 파서에서 허용합니다. new_limit가 주어지면 이것이 새로운 제한이됩니다.

csv 모듈은 다음 클래스를 정의합니다.

class csv. DictReader (f, fieldnames = None, restkey = None, restval = None, dialect = “excel”, * args, ** kwds) ¶

객체 만들기 일반 리더처럼 작동하지만 각 행의 정보를 선택적 fieldnames 매개 변수에 의해 키가 제공되는 dict에 매핑합니다.

fieldnames 매개 변수는 시퀀스입니다. 필드 이름이 생략되면 파일 f의 첫 번째 행에있는 값이 필드 이름으로 사용됩니다. 필드 이름이 결정되는 방법에 관계없이 사전은 원래 순서를 유지합니다.

행에 필드 이름보다 많은 필드가있는 경우 나머지 데이터는 목록에 배치되고 restkey로 지정된 필드 이름 (기본값 : None). 비어 있지 않은 행에 필드 이름보다 필드가 적 으면 누락 된 값이 restval 값으로 채워집니다 (기본값 : None).

다른 모든 선택적 또는 키워드 인수는 기본 reader 인스턴스로 전달됩니다.

버전 3.6에서 변경 : 반환 된 행은 이제 OrderedDict 유형입니다.

버전 3.8에서 변경 : 반환 된 행이 이제 dict.

간단한 사용 예 :

class csv. DictWriter ( f, fieldnames, restval = “”, extrasaction = “raise”, dialect = “excel”, * args, ** kwds) ¶

일반 작성자처럼 작동하지만 출력 행에 사전을 매핑하는 객체를 만듭니다. fieldnames 매개 변수는 writerow() 메소드에 전달 된 사전의 값이 filef에 기록되는 순서를 식별하는 키의 sequence입니다. 선택적 restval 매개 변수는 사전에 fieldnames의 키가 누락 된 경우 작성할 값을 지정합니다. writerow() 메소드에 전달 된 사전에 infieldnames를 찾을 수없는 키가 포함 된 경우 선택적 extrasaction 매개 변수는 수행 할 작업을 나타냅니다. "raise", 기본값 인 ValueError가 발생합니다. "ignore"로 설정하면 사전의 추가 값이 무시됩니다. 선택적 또는 키워드 인수는 기본 writer 인스턴스로 전달됩니다.

DictReader 클래스와 달리 필드 이름은 DictWriter 클래스의 매개 변수는 선택 사항이 아닙니다.

간단한 사용 예 :

class csv. Dialect

Dialect 클래스는 주로 itsattributes에 의존하는 컨테이너 클래스로, 특정

또는 writer 인스턴스.

클래스 csv. excel

excel 클래스는 Excel에서 생성 된 CSV 파일의 일반적인 속성을 정의합니다. 방언 이름 "excel"로 등록됩니다.

class csv. excel_tab

excel_tab 클래스는 Excel에서 생성 된 TAB 구분 파일의 일반적인 속성을 정의합니다. 방언 이름 "excel-tab"로 등록됩니다.

class csv. unix_dialect

unix_dialect 클래스는 UNIX 시스템에서 생성되는 CSV 파일의 일반적인 속성을 정의합니다. 즉, "\n"를 줄 종결 자로 사용하고 모든 필드를 인용합니다. 방언 이름 "unix"로 등록됩니다.

버전 3.2의 새로운 기능.

class csv. Sniffer

Sniffer 클래스는 CSV 파일의 형식을 추론하는 데 사용됩니다.

Sniffer 클래스는 두 가지 방법을 제공합니다.

sniff (sample, delimiters = None) ¶

Analyze 주어진 샘플과 발견 된 매개 변수를 반영하는 Dialect 하위 클래스를 반환합니다. 선택적 구분자 매개 변수가 제공되면 유효한 구분자 문자를 포함하는 문자열로 해석됩니다.

has_header (샘플) ¶

샘플 텍스트 분석 ( CSV 형식) 및 반환 True 첫 번째 행이 일련의 열 헤더 인 경우

Sniffer 사용 :

csv 모듈은 다음 상수를 정의합니다.

csv. QUOTE_ALL

writer 개체에 모든 필드를 인용하도록 지시합니다.

csv. QUOTE_MINIMAL

writer 객체에 구분 기호, quotechar 또는 임의의 문자 인라인 터미네이터와 같은 특수 문자를 포함하는 필드 만 인용하도록 지시합니다.

csv. QUOTE_NONNUMERIC

writer 객체가 숫자가 아닌 모든 필드를 인용하도록 지시합니다. .

독자가 전환하도록 지시합니다. 인용되지 않은 모든 필드에 float를 입력합니다.

csv. QUOTE_NONE

개체는 필드를 인용하지 않습니다. currentdelimiter가 출력 데이터에서 발생하면 현재 이스케이프 문자가 앞에옵니다. escapechar가 설정되지 않은 경우 이스케이프가 필요한 문자가 있으면 작성기가 Error를 발생시킵니다.

지시 reader 따옴표 문자의 특별한 처리를 수행하지 않습니다.

csv 모듈은 다음 예외를 정의합니다.

exception csv. Error

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다