ホームページ > バックエンド開発 > Python チュートリアル > Python でバイト オブジェクトを外部コマンドから文字列に変換するにはどうすればよいですか?

Python でバイト オブジェクトを外部コマンドから文字列に変換するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-19 09:52:09
オリジナル
801 人が閲覧しました

How Do I Convert Bytes Objects from External Commands to Strings in Python?

Python でのバイトのエンコードとデコード: 文字列変換のガイド

バイト オブジェクトは、外部プログラムと対話したりバイナリ データを処理したりするときによく発生します。 。これらを効果的に操作するには、文字列への変換、または文字列からの変換が必要になる場合があります。この記事では、外部コマンドの出力を含むバイト オブジェクトを通常の Python 文字列に変換する際の具体的な問題について説明します。

問題: バイトを文字列に変換する

Python 3 の次の例を考えてみましょう。

>>> from subprocess import *
>>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0]
>>> stdout
b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2\n'
ログイン後にコピー

stdout 変数には、次のことを表すバイト オブジェクトが含まれています。 「ls -l」コマンドの出力。人間が読める形式で出力するには、文字列に変換する必要があります。

解決策: Decode メソッドを使用する

decode() メソッドが使用されます。バイトオブジェクトを文字列に変換します。これは、bytes オブジェクト内のデータの文字エンコーディングを指定するエンコーディング パラメーターを受け取ります。

>>> stdout_str = stdout.decode('utf-8')
>>> print(stdout_str)
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1
-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file2
ログイン後にコピー

この例では、テキストの一般的なエンコーディングであるため、エンコーディングとして 'utf-8' を指定します。データ。ただし、処理される特定のデータに対して正しいエンコーディングを使用することが重要です。

注:

上記の解決策は、テキスト データを表すバイト オブジェクトの変換には適切に機能します。すべてのバイト オブジェクトにテキストが含まれるわけではないことに注意することが重要です。バイナリ データを処理するには、さまざまなテクニックが必要になる場合があります。

以上がPython でバイト オブジェクトを外部コマンドから文字列に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート