Python 2,3整数を「バイト」にきれいに変換する

イマレット:

私が見つけた最短の方法は次のとおりです。

n = 5

# Python 2.
s = str(n)
i = int(s)

# Python 3.
s = bytes(str(n), "ascii")
i = int(s)

私は特に、読みやすさと移植性という2つの要素に関心があります。Python 3の2番目の方法は醜いです。ただし、下位互換性があると思います。

私が見逃した短くてきれいな方法はありますか?現在、ラムダ式を作成して新しい関数で修正していますが、おそらくそれは不要です。

Mark Ransom:

回答1:

Python 2またはPython 3で文字列をバイトのシーケンスに変換するには、文字列のencodeメソッドを使用しますエンコーディングパラメータを指定しない場合'ascii'は、常に数値の桁数に十分対応できるエンコーディングパラメータが使用されます。

s = str(n).encode()

Python 2では、str(n)すでにバイトが生成されています。encodeこの文字列が暗黙的にバイトに再び戻ってUnicodeに変換され、二重の変換を行います。不必要な作業ですが、害はなく、Python 3と完全に互換性があります。


回答2:

上記は、実際に尋ねられた質問に対する回答です。これは、ASCIIバイトの文字列を人間が読める形式で生成することでした。しかし、人々はここに来て別の質問の答えを得ようとしているので、私もその質問に答えます。変換したい場合は10するb'10'上記の解答を使用しますが、変換したい場合10にはb'\x0a\x00\x00\x00'、その後読み続けます。

このstructモジュールは、さまざまなタイプとそれらのバイナリ表現をバイトのシーケンスとして変換するために特別に提供されました。型からバイトへの変換はで行われstruct.packます。fmtどの変換を実行するかを決定するフォーマットパラメータがあります。4バイト整数のi場合はI、符号付きの数値または符号なしの数値になります。その他の可能性については、フォーマット文字テーブルを参照してください。出力が1バイトを超える場合のオプションについては、バイトオーダー、サイズ、および位置合わせテーブル参照してください

import struct
s = struct.pack('<i', 5) # b'\x05\x00\x00\x00'

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Python 2,3整数を「バイト」にきれいに変換する

Python 3バイトとして表される大きな数を整数に変換する方法は?

Pythonで整数を2バイトに変換する

バイトを整数に変換するPython2および3互換のメソッド

バイトを整数に変換するPython2および3互換のメソッド

JavaとPythonでバイトを整数に変換する

Pythonで整数をバイトに変換する

python3:整数値(2バイト)をバイト配列の2つの個別のバイトに変換する

Pythonでバイト配列をよりエレガントに整数に変換するにはどうすればよいですか?

整数はどのように4バイトにマッピングされますか?Pythonで4バイトを整数に変換する方法

Pythonで整数を64ビットバイト表現に変換する方法

Pythonでバイナリ表現を符号付き64ビット整数に変換する

Python 3で、bytesオブジェクトの個々のバイトを整数に変換せずにリストに入れるにはどうすればよいですか?

Python 3でバイトを文字列に変換する方法は?

Pythonで、0から255までの整数を単一の符号なしバイトに変換するにはどうすればよいですか?

Pythonで長さ= 32バイトのシーケンスで整数を2進数に変換する方法

Pythonで整数をバイナリに変換する

Pythonで整数をバイナリに変換する

Python2で文字列をバイトに変換する方法

Pythonはバイトを符号付き整数に変換します(結果として負の整数が必要です)

Pythonで「[1,2,3]」を整数に変換する

Python3でintの配列をバイナリに変換する:「TypeError:整数のスカラー配列のみを変換できますか?」

python3で可変長バイト(8未満)をlong long intに高速に変換するにはどうすればよいですか?

python3で可変長バイト(8未満)をlong long intに高速に変換するにはどうすればよいですか?

Python 2のようにPython3でchr(0xdfff)をutf-8バイトに変換する方法は?

スーパーバイザー構成をpython2からpython3に変換するにはどうすればよいですか?

データポイントを整数Pythonに変換する

Python 3のバイト文字列変数を通常の文字列に変換するにはどうすればよいですか?

Pythonで整数を指定すると、バイト2〜7が返され、Javaコードが変換されます。

TOP 一覧

  1. 1

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  10. 10

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  11. 11

    Reactでclsxを使用する方法

  12. 12

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  13. 13

    MLでのデータ前処理の背後にある直感

  14. 14

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  15. 15

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  18. 18

    テキストフィールドの値に基づいて UIslider を移動します

  19. 19

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  20. 20

    PowerShellの分割ファイルへのヘッダーの追加

  21. 21

    ソートされた検索、ターゲット値未満の数をカウント

ホットタグ

アーカイブ