Byte vào tệp như đối tượng python

Trong bài học này, bạn sẽ khám phá các thao tác tuần tự phổ biến mà các đối tượng bytes hỗ trợ. Bạn sẽ xem xét kỹ hơn

  • Toán tử innot in
  • Các toán tử nối (+) và sao chép (
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    0)
  • Lập chỉ mục và cắt lát
  • Các chức năng tích hợp sẵn
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    1,
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    2 và
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    3
  • Các phương thức cho đối tượng bytes
  • >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    5 và
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    6

Để biết thêm thông tin về các giá trị thập lục phân, hãy xem các tài nguyên sau

  • Mã hóa Unicode & ký tự trong Python. Hướng dẫn không đau
  • Mục nhập Wikipedia hệ thập lục phân

Đây là cách sử dụng các toán tử innot in

>>>

>>> a = b'abcde'
>>> a
b'abcde'

>>> b'cd' in a
True
>>> b'spam' in a
False
>>> b'spam' not in a
True

Dưới đây là cách sử dụng toán tử nối (+) và sao chép (

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
0)

>>>

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'

Đây là cách lập chỉ mục và cắt

>>>

>>> a = b'abcde'
>>> a[2]
99
>>> a[1]
98
>>> a[2:4]
b'cd'
>>> a[1:5]
b'bcde'

Dưới đây là cách sử dụng các hàm tích hợp sẵn

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
1,
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
2 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
3

>>>

>>> a = b'abcde'
>>> len(a)
5
>>> max(a)
101
>>> chr(101)
'e'
>>> min(a)
97
>>> chr(97)
'a'

Đây là cách sử dụng các phương thức cho đối tượng bytes

>>>

>>> a = b'spam,egg,spam,bacon,spam,lobster'
>>> a
b'spam,egg,spam,bacon,spam,lobster'
>>> a.count(b'spam')
3
>>> a.count('spam')
Traceback (most recent call last):
  File "", line 1, in 
    a.count('spam')
TypeError: argument should be integer or bytes-like object, not 'str'

>>> a.endswith(b'ster')
True

>>> a.find(b'bacon')
14

>>> a
b'spam,egg,spam,bacon,spam,lobster'
>>> a.split(sep=b',')
[b'spam', b'egg', b'spam', b'bacon' , b'spam', b'lobster']

>>> a.center(40, b'-')
b'----spam,egg,spam,bacon,spam,lobster----'

>>> a.center(40, ' ')
Traceback (most recent call last):
  File "", line 1, in 
    a.center(40, ' ')
TypeError: center() argument 2 must be a byte string of length 1, not 'str'

Đây là cách sử dụng

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
5 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
6

>>>

>>> a = b'spam,egg,spam,bacon,spam,lobster'
>>> a[1]
112
>>> a[3]
109
>>> hex(a[0])
'0x73'
>>> a[0]
115
>>> list(a)
[115, 112, 97, 109, 44, 101, 103, 103, 44, 115, 112, 97, 109, 44, 98, 97, 99, 111, 110, 44, 115, 112, 97, 109, 44, 108, 111, 98, 115, 116, 101, 114]

>>> b = bytes.fromhex(' aa 68 32 af ')
>>> b
b'\xaah2\xaf'
>>> list(b)
[170, 104, 50, 175]

>>> b
b'\xaah2\xaf'
>>> b.hex()
'aa6832af'
>>> type(b.hex())

Alain Rouleau trên

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
49 đó khá là đau đầu. Và tại sao đầu ra có cả
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
50 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
51 trong
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
52?

Nhưng điều dường như đang xảy ra là hệ thập lục phân 68 bằng số thập phân 104, đến lượt nó là ascii cho

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
50. Cộng với số thập lục phân 32 là số thập phân 50, lần lượt là ascii cho
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
51. Tất cả đều khá điên rồ

Veda trên

Làm thế nào để giao diện điều khiển trên Mã VS trông rất sặc sỡ?

Byte vào tệp như đối tượng python

Ricky White Nhóm RP trên

Tôi tin rằng Chris sử dụng BPython làm REPL Python của anh ấy. Đó là những gì bạn đang thấy bên trong VS Code Terminal của anh ấy

Veda trên

Cảm ơn vì đã trả lời. Tôi đã thử cài đặt nó trên windows, nhưng gặp lỗi phụ thuộc khác khi gọi nó. (không tìm thấy mô-đun fcntl ). Tôi đoán tôi phải gắn bó với REPL mặc định thông thường

Veda trên

Đã sửa xong. Trên cửa sổ, chúng ta cần sử dụng python -m bpython. cli thay vì python để truy cập CLI này

Byte vào tệp như đối tượng python

Chris Bailey Nhóm RP trên

Xin chào @Veda, tôi rất vui vì bạn đã tìm ra giải pháp.

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
57 trên windows đôi khi hơi rắc rối. Tôi đã phát hiện ra rằng nó thường là do sự hỗ trợ của một số gói cơ bản (lời nguyền, v.v.)

Trong tương lai, nếu bạn muốn xem xét một số lựa chọn thay thế có thể có, với các tính năng tương tự.

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
58 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
59

Làm cách nào để chuyển đổi byte thành đối tượng Python?

Vì mọi thứ đều là đối tượng trong lập trình Python nên các kiểu dữ liệu thực chất là các lớp và các biến là các thể hiện (đối tượng) của các lớp này. .
Phương pháp 1. Sử dụng phương thức giải mã()
Phương pháp 2. Sử dụng hàm str()
Phương pháp 3. Sử dụng codec. phương pháp giải mã ()

Tệp giống như đối tượng trong Python là gì?

Đối tượng tệp còn được gọi là đối tượng giống như tệp hoặc luồng . Thực tế có ba loại đối tượng tệp. tệp nhị phân thô, tệp nhị phân được đệm và tệp văn bản. Giao diện của chúng được xác định trong mô-đun io. Cách chính tắc để tạo một đối tượng tệp là sử dụng hàm open().

Đối tượng byte trong Python là gì?

Dữ liệu chuỗi và ký tự trong Python . Một đối tượng bytes là một chuỗi bất biến của các giá trị byte đơn. Mỗi phần tử trong đối tượng bytes là một số nguyên nhỏ trong khoảng từ 0 đến 255. one of the core built-in types for manipulating binary data. A bytes object is an immutable sequence of single byte values. Each element in a bytes object is a small integer in the range of 0 to 255.

Làm cách nào để chuyển đổi byte thành CSV bằng Python?

Giải pháp nhanh .
Chuyển đổi đối tượng byte thành chuỗi bằng cách sử dụng str() và cắt [2. -1] để loại bỏ "b". '" kèm theo ký hiệu
Chuyển đổi chuỗi thành chuỗi có định dạng CSV bằng cách sử dụng chuỗi. thay thế ('\\t', ','). .
Ghi CSV vào một tệp bằng cách sử dụng hàm print() với file=open(. , 'w') đối số