Array byte ke python biner

Cara yang sangat efisien untuk membaca data biner dengan tipe data yang diketahui, serta mem-parsing file teks berformat sederhana. Data yang ditulis menggunakan metode tofile dapat dibaca menggunakan fungsi ini

Parameter . file file atau str atau Path

Buka objek file atau nama file

Berubah pada versi 1. 17. 0. objek sekarang diterima.

tipe-d tipe data

Tipe data dari array yang dikembalikan. Untuk file biner, ini digunakan untuk menentukan ukuran dan urutan byte item dalam file. Sebagian besar tipe numerik bawaan didukung dan tipe ekstensi mungkin didukung

Baru di versi 1. 18. 0. Tipe d yang kompleks.

hitung int

Jumlah item untuk dibaca. -1_ berarti semua item (i. e. , berkas lengkap)

sep str

Pemisah antar item jika file adalah file teks. Pemisah kosong ("") berarti file harus diperlakukan sebagai biner. Spasi ("") di pemisah cocok dengan nol atau lebih karakter spasi putih. Pemisah yang hanya terdiri dari spasi harus cocok dengan setidaknya satu spasi putih

offset int

Offset (dalam byte) dari posisi file saat ini. Default ke 0. Hanya diizinkan untuk file biner

Baru di versi 1. 17. 0

suka array_like, opsional

Objek referensi untuk memungkinkan pembuatan array yang bukan array NumPy. Jika array-like diteruskan sebagai like mendukung protokol __array_function__, hasilnya akan ditentukan olehnya. Dalam hal ini, ini memastikan pembuatan objek array yang kompatibel dengan yang diteruskan melalui argumen ini

Baru di versi 1. 20. 0

Lihat juga

,

Cara yang lebih fleksibel untuk memuat data dari file teks

Catatan

Jangan bergantung pada kombinasi tofile dan untuk penyimpanan data, karena file biner yang dihasilkan tidak bergantung pada platform. Khususnya, tidak ada informasi byte-order atau tipe data yang disimpan. Data dapat disimpan dalam format

>>> import tempfile
>>> fname = tempfile.mkstemp()[1]
>>> x.tofile(fname)
3 independen platform menggunakan dan sebagai gantinya

bytearray() metode mengembalikan objek bytearray yang merupakan array dari byte yang diberikan

Contoh

prime_numbers = [2, 3, 5, 7]

# convert list to bytearray byte_array = bytearray(prime_numbers)

print(byte_array) # Output: bytearray(b'\x02\x03\x05\x07')
_

sintaks bytearray()

Sintaks metode bytearray() adalah

bytearray([source[, encoding[, errors]]])

bytearray() metode mengembalikan objek bytearray (mis. e. array byte) yang bisa berubah (dapat dimodifikasi) urutan bilangan bulat dalam rentang

bytearray([source[, encoding[, errors]]])
1

Jika Anda menginginkan versi yang tidak dapat diubah, gunakan metode bytes()


bytearray() Parameter

bytearray() mengambil tiga parameter opsional

  • sumber (Opsional) - sumber untuk menginisialisasi array byte
  • encoding (Opsional) - jika sumbernya adalah string, pengkodean string
  • kesalahan (Opsional) - jika sumbernya adalah string, tindakan yang harus diambil saat konversi penyandian gagal (Baca lebih lanjut. Pengkodean string)

Parameter sumber dapat digunakan untuk menginisialisasi array byte dengan cara berikut

TypeDescriptionStringMengonversi string menjadi byte menggunakan

bytearray([source[, encoding[, errors]]])
3 Juga harus menyediakan penyandian dan secara opsional errorsIntegerMembuat larik dengan ukuran yang disediakan, semua diinisialisasi ke nullObjectBuffer hanya-baca dari objek akan digunakan untuk menginisialisasi byte arrayIterableMembuat larik berukuran sama dengan jumlah iterable dan diinisialisasi

Bilah bahasa ini adalah teman Anda. Pilih bahasa favorit Anda

Pilih bahasa favorit Anda

  • C
  • C++
  • C#
  • Pergi
  • Jawa
  • JS
  • Obj-C
  • PHP
  • Piton
  • Rubi
  • Karat
  • Atau cari.

Idiom #275 Digit biner ke array byte

Dari string s yang terdiri dari 8n karakter digit biner ('0' atau '1'), buatlah array ekuivalen a dari n byte
Setiap potongan 8 digit biner (2 kemungkinan nilai per digit) didekodekan menjadi satu byte (256 kemungkinan nilai)

  • Piton
  • C++
  • C#
  • Benteng
  • Pergi
  • Jawa
  • Pascal
  • Perl
  • Rubi

n = (len(s) - 1) // 8 + 1
a = bytearray(n)
for i in range(n):
    b = int(s[i * 8:(i + 1) * 8], 2)
    a[i] = b
_

#include <string>
#include <vector>
using namespace std;

const size_t n = s.length() / 8;

vector<uint8_t> a(n);

for(size_t block = 0; block < n; block++)
{
    uint8_t acc = 0;
    const size_t start = block * 8;
    for(size_t offset = start; offset < start + 8; offset++)
    {
        acc = (acc << 1) + (s[offset] - '0');
    }

    a[block] = acc;
}
_

  • Demo

using System;
using System.Linq;
_

var a = Enumerable.Range(0, s.Length / 8)
        .Select(i => s.Substring(i * 8, 8).ToCharArray())
        .Select(block => (byte)block.Aggregate(0, (acc, c) => (acc << 1) + (c - '0')))
        .ToArray();

  subroutine to_s (s, a)
    use iso_fortran_env, only: int8
    character (len=*), intent(in) :: s
    integer (kind=int8), allocatable, intent(out), dimension(:) :: a
    allocate (a(len(s)/8))
    read (unit=s,fmt='(*(B8.8))') a
  end subroutine to_s

import "strconv"

n := len(s) / 8
a := make([]byte, n)
for i := range a {
	b, err := strconv.ParseInt(s[i*8:i*8+8], 2, 0)
	if err != nil {
		log.Fatal(err)
	}
	a[i] = byte(b)
}

  • Demo

short[] a = new short[s.length() / 8];
for(int index1 = 0, index2 = 0; index1 < a.length; index1++, index2 += 8) {
	a[index1] = Short.valueOf(s.substring(index2, index2 + 8), 2);
}

  • Dokter

  Size := Length(S) div 8;
  SetLength(a, Size);
  for i := 0 to Size - 1 do
  begin
    SBin := '%' + Copy(S, 1+(i*8), 8);
    Val(SBin, a[i], Err);
    if (Err <> 0) then
      RunError(106);  
  end;

#include <string>
#include <vector>
using namespace std;
0

  • Demo
  • Dokter

#include <string>
#include <vector>
using namespace std;
1


Apakah Anda tahu cara terbaik untuk melakukan ini dalam bahasa Anda?

< >

Idiom dibuat oleh programming-idioms. org

Sejarah
  • Lihat revisi
Idiom terkait
  • Hex string ke array byte
  • Mengurai digit biner
  • Byte ke string hex

Lembar contekan

Masalah
  • Laporkan bug

Bagaimana cara mengubah array byte menjadi integer dengan Python?

Sintaksis. int. from_bytes(byte, byteorder, *, ditandatangani=Salah)
Parameter
Mengembalikan – sebuah int yang setara dengan byte yang diberikan

Bagaimana cara mengubah array byte menjadi string dengan Python?

Berbagai cara untuk mengonversi Byte menjadi string dengan Python. .
Menggunakan metode decode()
Menggunakan fungsi str()
Menggunakan codec. dekode() metode
Menggunakan map() tanpa menggunakan awalan b
Menggunakan panda untuk mengubah byte menjadi string

Bagaimana cara mengubah array menjadi byte dengan Python?

metode bytearray() mengembalikan objek bytearray (i. e. array byte) yang dapat diubah (dapat dimodifikasi) urutan bilangan bulat dalam rentang 0

Bagaimana cara mengubah array byte ke hex dengan Python?

Menggunakan format() + join() untuk Mengonversi Byte Array menjadi Hex String . "02" dalam format digunakan untuk mengisi angka nol di depan yang diperlukan. Fungsi join memungkinkan menggabungkan hasil heksadesimal menjadi string.