web-dev-qa-db-ja.com

python変数に接頭辞「b」を追加しますか?

プレフィックス「b」を文字列に追加すると、バイトに変換されます。

b'example'

しかし、変数を使用してこれを行う方法はわかりません。 string = 'example'、これらはどれも機能していないようです:

b(string)
b string
b'' + string

これを行う簡単な方法はありますか?

32
zombio
# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')

Python3の場合:

バイトリテラルには、常に「b」または「B」のプレフィックスが付きます。 str型ではなく、bytes型のインスタンスを生成します。 ASCII文字のみを含むことができます。128以上の数値のバイトはエスケープで表現する必要があります。

Python2の場合:

「=」または「B」のプレフィックスは、Python 2;で無視されます。これは、リテラルがPython 3でバイトリテラルになることを示します。

Bytes()の詳細:

バイト([ソース[、エンコード[、エラー]]])

新しい「バイト」オブジェクトを返します。これは、0 <= x <256の範囲の整数の不変のシーケンスです。バイトは、bytearrayの不変バージョンです。これは、同じ非変化メソッドと同じインデックス付けおよびスライス動作を持ちます。

したがって、コンストラクター引数はbytearray()として解釈されます。

Bytesオブジェクトは、リテラルを使用して作成することもできます。文字列およびバイトリテラルを参照してください。

31
Leonardo.Z

bytes() を使用します。

>>> bytes("hello", encoding="ascii")
b'hello'
5
Tim Pietzcker
string = bytes(string, encoding= 'utf-8')

ここで、「string」は変数です。

2
a_ran

または、 bytes.decode() メソッドを使用してstringに変換します(指定されたエンコーディングを使用):

_>>> b'hello'.decode('utf-8')
'hello'
_

反対の変換は str.encode() で、stringbytesに変換します。

_>>> 'hello'.encode('utf-8')
b'hello'
_
1
Simon G.

私はこれを長い間チェックしており、文字列を変数に変換する最良の方法はvars()を使用することだと思います

vars()['variable name'] =割り当てる値

vars()['created_variable'] = 1
print(created_variable)
>> 1
0
saias