csv –CSVファイルの読み取りと書き込み¶

モジュールの内容¶

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です