ホームページ >バックエンド開発 >Python チュートリアル >バイナリ ファイル データを処理する際の Python 3 の「TypeError: a bytes-like object is required, not 'str'」を修正する方法は?

バイナリ ファイル データを処理する際の Python 3 の「TypeError: a bytes-like object is required, not 'str'」を修正する方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-02 00:45:10303ブラウズ

How to Fix Python 3's

バイナリ データの処理: ファイル コンテンツを処理する際の Python 3 での TypeError の解決

Python 3 では、ファイルを操作するときに一般的な問題が発生しますそして文字列とバイトを比較します。エラー メッセージ「TypeError: a bytes-like object is required, not 'str'」は、Python 2.7 と 3.5 の間の互換性の問題を示しています。

Python 2.7 でファイルをバイナリ ('rb' モード) として開くと、ファイルの読み取り時に返されたバイト オブジェクト。 Python 3.5 では、このデフォルトの動作が変更されました。開いているファイルはデフォルト ('r' モード) でテキスト ファイルになり、読み取られると文字列を返します。

文字列ベースの操作で 'rb' ファイルが発生したときにこのエラーを解決するには、いくつかの方法があります。

  1. テキスト モードに切り替える: 「rb」の代わりに「r」モードを使用してファイルを開きます。これにより文字列が返され、エラーなしで文字列比較が可能になります。
  2. Use Byte Comparison: 文字列をバイトと比較する必要がある場合は、b'some を使用して文字列からバイトのようなオブジェクトを作成します。 -パターン'。これにより、封じ込めテストに合格できるようになります。
  3. バイト オブジェクトのデコード: または、バイト オブジェクトを読み取り、.decode() メソッドを使用して文字列にデコードすることもできます。これは、バイトではなく文字列を操作する必要がある場合に便利です。

Python でよくある「TypeError」を回避するために、文字列比較などの操作を実行する前にファイル コンテンツのデータ型を必ず考慮してください。 3.

以上がバイナリ ファイル データを処理する際の Python 3 の「TypeError: a bytes-like object is required, not 'str'」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。