Pythonのcsvモジュールを使用して、CSVファイルにクオート付きで書き込む方法を説明します。Pythonのcsv.writerには、値をクオートするための4つの組み込み方法があります: csv.QUOTE_ALL, csv.QUOTE_MINIMAL, csv.QUOTE_NONNUMERIC, csv.QUOTE_NONE

しかし、すべての非None値をクオートする、PostgresのFORCE QUOTE *をエミュレートするクオートメカニズムが必要な場合もあります。以下に、そのようなカスタムクオートメカニズムを実装する方法を示します。

def quote(col):
    if col is None:
        return ''
    # uses double-quoting style to escape existing quotes
    return '\"{}\"'.format(str(col).replace('\"', '\"\"'))

writer = csv.writer(fileobj, quoting=csv.QUOTE_NONE, escapechar='', quotechar='')

for row in rows:
    writer.writerow(map(quote, row))

このコードは、csv.writerquotingパラメータをcsv.QUOTE_NONEに設定し、escapecharquotecharを空文字列に設定することで、モジュールがすでにクオートされた値をクオートするのを避けます。ただし、この方法はCSVの値にデリミタを使用しない場合に限ります。

以上がPythonでCSVファイルにクオート付きで書き込む方法についての説明です。この情報が役立つことを願っています。

投稿者 admin

コメントを残す

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