1. ホーム
  2. python

[解決済み] CSVファイルにUTF-8を書き込む方法

2023-02-16 22:06:40

質問

PyQt4からcsv形式のテキストファイルを作成しようとしています。 QTableWidget . テキストは特殊文字を含むので、UTF-8のエンコーディングで書きたいのです。以下のコードを使っています。

import codecs
...
myfile = codecs.open(filename, 'w','utf-8')
...
f = result.table.item(i,c).text()
myfile.write(f+";")

セルに特殊文字が含まれるまで動作します。また

myfile = open(filename, 'w')
...
f = unicode(result.table.item(i,c).text(), "utf-8")

でも、特殊文字が出ると止まってしまいます。何が間違っているのかさっぱりわかりません。

どうすれば解決しますか?

Python 3.x の場合は非常に簡単です ( docs ).

import csv

with open('output_file_name', 'w', newline='', encoding='utf-8') as csv_file:
    writer = csv.writer(csv_file, delimiter=';')
    writer.writerow('my_utf8_string')

Python 2.xの場合、以下のようになります。 をご覧ください。 .