[解決済み] なぜ私のPythonコードは、テキストファイルから読み込むときに余分な文字 "ï "¿" を表示するのですか?
2022-02-10 01:20:38
質問
try:
data=open('info.txt')
for each_line in data:
try:
(role,line_spoken)=each_line.split(':',1)
print(role,end='')
print(' said: ',end='')
print(line_spoken,end='')
except ValueError:
print(each_line)
data.close()
except IOError:
print("File is missing")
ファイルを一行ずつ印刷すると、先頭に不要な3文字、すなわち "ï "¿" が追加される傾向があります。
実際に出力されたもの
Man said: Is this the right room for an argument?
Other Man said: I've told you once.
Man said: No you haven't!
Other Man said: Yes I have.
期待される出力
Man said: Is this the right room for an argument?
Other Man said: I've told you once.
Man said: No you haven't!
Other Man said: Yes I have.
解決方法は?
Python 3はPython 2とエンコーディングの扱いが異なるので、これと重複するものは見当たりません。つまり、デフォルトのエンコーディングでファイルを開くのではなく、(これは
'utf-8'
を使用します。
'utf-8-sig'
を期待し、それを除去します。
UTF-8 バイトオーダーマーク
として表示されるものです。

.
つまり、代わりに
data = open('info.txt')
する
data = open('info.txt', encoding='utf-8-sig')
Python 2 を使っている場合は、次のように表示されます。
Python、出力をUTF-8にエンコードする
と
PythonでBOM付きのUTF-8をBOM無しのUTF-8に変換する
. を使った悪ふざけが必要になります。
codecs
または
str.decode
を使用すると、Python 2 で正しく動作します。しかし、Python 3では、必要なのは
encoding=
パラメータは、ファイルを開くときに指定します。
関連
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】syntaxError: 'continue' がループ内で適切に使用されていない
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] print関数の出力をフラッシュする(pythonの出力をバッファリング解除する)にはどうすればよいですか?
-
[解決済み] ローカルディレクトリからrequirements.txtファイルに従ってpipを使用してパッケージをインストールするにはどうすればよいですか?
-
[解決済み] Pythonでパスから拡張子なしでファイル名を取得する方法は?
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み] なぜPythonのコードは関数の中でより速く実行されるのですか?
-
[解決済み] PandasとPythonでCSVファイルを読み込むとUnicodeDecodeErrorが発生する。
-
[解決済み】文字列をテキストファイルに出力する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PicgoのイメージベッドツールをPythonで実装する
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】ImportError: bs4という名前のモジュールがない(BeautifulSoup)
-
[解決済み] ファイルの先頭からï "¿を削除するにはどうすればよいですか?