モジュールの内容¶
csv
モジュールは次の関数を定義します。
csv.
reader
(csvfile、dialect = “excel”、** fmtparams )¶
指定されたcsvfile.csvfileの行を反復処理するリーダーオブジェクトを返します。イテレータプロトコルをサポートし、__next__()
メソッドが呼び出されるたびに文字列を返す任意のオブジェクトにすることができます。 —ファイルオブジェクトとリストオブジェクトの両方が適しています。 csvfileがファイルオブジェクトの場合は、newline=""
で開く必要があります。 1特定のCSV方言に固有のパラメーターのセットを定義するために使用される、オプションの方言パラメーターを指定できます。これは、Dialect
クラスのサブクラスのインスタンス、またはlist_dialects()
関数によって返される文字列の1つである可能性があります。他のオプションのfmtparamsキーワード引数を指定して、currentdialectの個々のフォーマットパラメータを上書きできます。方言とフォーマットパラメータの詳細については、「方言とフォーマットパラメータ」のセクションを参照してください。
csvファイルから読み取られた各行は、文字列のリストとして返されます。 QUOTE_NONNUMERIC
formatoptionが指定されていない限り、データ型の自動変換は実行されません(この場合、引用符で囲まれていないフィールドは浮動小数点数に変換されます)。
簡単な使用例:
csv.
writer
(csvfile、dialect = “excel”、** fmtparams)¶
変換を担当するライターオブジェクトを返します。ユーザーのデータを、指定されたファイルのようなオブジェクトの区切り文字列に変換します。 csvfileは、write()
メソッドを持つ任意のオブジェクトにすることができます。 csvfileがファイルオブジェクトの場合は、newline=""
で開く必要があります。1。特定のCSV方言に固有のパラメーターのセットを定義するために使用される、オプションの方言パラメーターを指定できます。これは、Dialect
クラスのサブクラスのインスタンス、またはlist_dialects()
関数によって返される文字列の1つである可能性があります。他のオプションのfmtparamsキーワード引数を指定して、currentdialectの個々のフォーマットパラメータを上書きできます。方言とフォーマットパラメータの詳細については、「方言とフォーマットパラメータ」のセクションを参照してください。 DB APIを実装するモジュールとのインターフェースをできるだけ簡単にするために、値None
は空の文字列として書き込まれます。これは可逆的な変換ではありませんが、cursor.fetch*
呼び出しから返されたデータを前処理せずに、SQLNULLデータ値をCSVファイルにダンプするのが簡単になります。他のすべての非文字列データは書き込まれる前のstr()
。
簡単な使用例:
csv.
register_dialect
(name])¶
方言を名前に関連付けます。名前は文字列でなければなりません。方言は、Dialect
のサブクラスを渡すか、fmtparamsキーワード引数、またはその両方を使用して、方言のパラメーターをオーバーライドするキーワード引数を使用して指定できます。方言とフォーマットパラメータの詳細については、「方言とフォーマットパラメータ」セクションを参照してください。
csv.
unregister_dialect
(名前)¶
名前に関連付けられている方言を方言レジストリから削除します。名前が登録された方言名でない場合、Error
が発生します。
csv.
get_dialect
(name)¶
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)¶
オブジェクトを作成しますこれは通常のリーダーのように動作しますが、各行の情報をdict
にマップします。そのキーはオプションのfieldnamesパラメーターで指定されます。
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パラメーターは、ディクショナリにフィールド名のキーがない場合に書き込まれる値を指定します。 writerow()
メソッドに渡された辞書に、フィールド名に見つからないキーが含まれている場合、オプションのextrasactionパラメーターは、実行するアクションを示します。"raise"
、デフォルト値、ValueError
が発生します。"ignore"
に設定されている場合、辞書内の余分な値は無視されます。その他オプションまたはキーワード引数は、基になるwriter
インスタンスに渡されます。
DictReader
クラスとは異なり、フィールド名はDictWriter
クラスのパラメータはオプションではありません。
簡単な使用例:
クラスcsv.
Dialect
¶
Dialect
クラスは、特定の
またはwriter
インスタンス。
クラスcsv.
excel
¶
excel
クラスは、Excelで生成されたCSVファイルの通常のプロパティを定義します。方言名"excel"
で登録されています。
クラスcsv.
excel_tab
¶
excel_tab
クラスは、Excelで生成されたTAB区切りファイルの通常のプロパティを定義します。方言名"excel-tab"
で登録されています。
クラスcsv.
unix_dialect
¶
unix_dialect
クラスは、UNIXシステムで生成されたCSVファイルの通常のプロパティを定義します。つまり、"\n"
を行末記号およびquotingallフィールドとして使用します。方言名"unix"
で登録されています。
バージョン3.2の新機能。
クラスcsv.
Sniffer
¶
Sniffer
クラスは、CSVファイルの形式を推測するために使用されます。
Sniffer
クラスは2つのメソッドを提供します:
sniff
(sample、delimiters = None)¶
分析指定されたサンプルを返し、見つかったパラメーターを反映する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が出力データで発生する場合、その前に現在のエスケープ文字文字が付きます。エスケープ文字が設定されていない場合、エスケープが必要な文字が見つかった場合、ライターはError
を生成します。
reader
に指示します。引用符の特別な処理を実行しません。
csv
モジュールは、次の例外を定義します。
例外csv.
Error