2017-12-22 16 views
2

だから、python3とunicodeです。私は、すべてのpython3文字列が実際にはUnicode文字列であり、すべてのpython3コードがutf-8として格納されていることを知っています。しかし、python3はどのようにテキストファイルを読み込みますか?彼らはutf-8でエンコードされていると仮定していますか?テキストファイルを読むときにdecode( 'utf-8')を呼び出す必要がありますか? pandas read_csv()とto_csv()はどうでしょうか?Python3でUTF-8でエンコードされたファイルとテキストファイルを読む

答えて

3

Pythonのbuilt-in function open()は、オプションのパラメータencodingを有する:

エンコーディングファイルをデコード又はエンコードするために使用される符号化の名前です。これはテキストモードでのみ使用してください。デフォルトのエンコーディングは プラットフォームに依存します(locale.getpreferredencoding()が返す)、 ですが、Pythonでサポートされている任意のテキストエンコーディングを使用できます。サポートされているエンコードのリストについては、 codecs moduleを参照してください。

類似のパラメータは、パンダで見つけることができます。

  • pandas.read_csv()encoding:STR、どれもデフォルトません。読み取り/書き込み時にUTFに使用するエンコーディング(例:‘utf-8’)。
  • Series.to_csv()encoding:文字列、オプション。内容が非ASCIIの場合、3より前のPythonバージョンの場合に使用するエンコーディングを表す文字列。
  • DataFrame.to_csv()encoding:文字列、オプション。出力ファイルで使用するエンコーディングを表す文字列。デフォルトはPython 2では‘ascii’、Python 3では‘utf-8’です。
関連する問題