[解決済み] TypeError: Python3でファイルへの書き込み時に'str'ではなくbytesのようなオブジェクトが要求される
2022-03-19 10:28:01
質問
最近、Py 3.5に移行しました。 このコードは Python 2.7 で正しく動作していました。
with open(fname, 'rb') as f:
lines = [x.strip() for x in f.readlines()]
for line in lines:
tmp = line.strip().lower()
if 'some-pattern' in tmp: continue
# ... code
3.5にアップグレードしたら
TypeError: a bytes-like object is required, not 'str'
最後の行(パターン検索コード)でエラーが発生しました。
を使ってみましたが
.decode()
関数を文の両脇に置くことも、試してみました。
if tmp.find('some-pattern') != -1: continue
- を無駄にする。
2:3の問題はほぼ全てすぐに解決できたのですが、このちょっとした文言が気になるのです。
解決方法は?
バイナリーモードでファイルを開いた。
with open(fname, 'rb') as f:
これは、ファイルから読み込んだすべてのデータを
bytes
オブジェクトではなく
str
. この場合、封じ込めテストに文字列を使用することはできません。
if 'some-pattern' in tmp: continue
を使うことになる。
bytes
オブジェクトに対してテストするために
tmp
の代わりに
if b'some-pattern' in tmp: continue
を置き換えることで、代わりにテキストファイルとしてファイルを開くこともできます。
'rb'
モードを
'r'
.
関連
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python Pillow Image.save jpg画像圧縮問題
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】TypeError: PythonとCSVでは'str'ではなくbytesのようなオブジェクトが必要です。
最新
-
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 implement mysql add delete check change サンプルコード
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
Python 入出力と高次代入の基礎知識
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】TypeError: PythonとCSVでは'str'ではなくbytesのようなオブジェクトが必要です。