私は、Python 2.7.x とのPython 3.3以降で動作し、UnicodeデータテキストファイルI/Oを使用するいくつかのコードに取り組んでいます。Python 2.7 io.open: "io import open"または "io.open()"を使用しますか?
だからこれは良いです - とはなぜですか?
バリアント1:
import io
encoding = 'utf-8'
with io.open('Unicode.txt', 'w', encoding=encoding) as f:
…
with io.open('Unicode.txt', 'r', encoding=encoding) as f:
…
は、バリアント2:個人的に
from io import open
encoding = 'utf-8'
with open('Unicode.txt', 'w', encoding=encoding) as f:
…
with open('Unicode.txt', 'r', encoding=encoding) as f:
…
コードがPython-ようでなければなりませんので、私は、バリアント2を使用するようにを傾向があるのです3 ish可能であれば、Python 2.7.x用バックポートスタブを提供するだけです。また、よりクリーンな外観と私は多くの既存のコードを変更する必要はありません。また、ioモジュール全体をインポートしないようにすることで、少ししか節約できないと思います。
モジュール全体を常にインポートします。これが唯一の違いは、現在のモジュールのグローバルでどの名前がバインドされているかです( 'io'がバインドされているか、' open'がバインドされているかのどちらかです)。 –
そのことを分かっていない、説明のために、Martijn! – Moonbase
@MartijnPietersこれは他の質問の複製ではありません。それは特定の '開く'。 Variant 2を使用すると、Python 3が完全に採用されると、インポート行全体を削除することができます。 – Emil