Tệp nhị phân là tệp không phải là tệp văn bản bình thường. Thí dụ. Một tập tin hình ảnh. Các tệp này cũng được lưu trữ dưới dạng một chuỗi byte trong đĩa cứng máy tính. Các loại tệp nhị phân này không thể được mở ở chế độ bình thường và đọc dưới dạng văn bản
Bạn có thể đọc tệp nhị phân bằng cách mở tệp ở chế độ nhị phân bằng cách sử dụng
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
9Khi làm việc với các vấn đề như phân loại hình ảnh trong Machine learning, bạn có thể cần mở tệp ở chế độ nhị phân và đọc byte để tạo mô hình ML. Trong tình huống này, bạn có thể mở tệp ở chế độ nhị phân và đọc tệp dưới dạng byte. Trong trường hợp này, việc giải mã byte thành các ký tự liên quan sẽ không được thực hiện. Mặt khác, khi bạn mở một tệp bình thường ở chế độ đọc thông thường, các byte sẽ được giải mã thành chuỗi hoặc các ký tự liên quan khác dựa trên mã hóa tệp
Nếu bạn vội vàng
Bạn có thể mở tệp bằng phương thức
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
0 bằng cách chuyển tham số b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
1 để mở tệp ở chế độ nhị phân và đọc tệp byte b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
2 mở tệp nhị phân ở chế độ đọc b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
3– Để chỉ định mở tệp ở chế độ đọcb – Để chỉ định đó là tệp nhị phân. Sẽ không có nỗ lực giải mã byte thành chuỗi nào.
Thí dụ
Ví dụ dưới đây đọc tệp một byte tại một thời điểm và in byte
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
Nếu bạn muốn hiểu chi tiết, hãy đọc tiếp…
Trong hướng dẫn này, bạn sẽ học cách đọc tệp nhị phân theo nhiều cách khác nhau
Mục lục
- Đọc tệp nhị phân theo từng byte
- Python đọc tệp nhị phân thành mảng byte
- Python đọc tệp nhị phân thành mảng có nhiều mảng
- Đọc tệp nhị phân từng dòng
- Đọc tệp nhị phân đầy đủ trong một lần
- Python đọc tệp nhị phân và chuyển đổi sang Ascii
- Đọc tệp nhị phân vào khung dữ liệu
- Đọc tiêu đề bỏ qua tệp nhị phân
- Đọc tệp nhị phân bằng Pickle
- Phần kết luận
Đọc tệp nhị phân theo từng byte
Trong phần này, bạn sẽ học cách đọc từng byte tệp nhị phân và in nó. Đây là một trong những cách nhanh nhất để đọc tệp nhị phân
Tệp được mở bằng phương pháp
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
0 và chế độ được đề cập là “rb” có nghĩa là mở tệp ở chế độ đọc và biểu thị đó là tệp nhị phân. Trong trường hợp này, việc giải mã byte thành chuỗi sẽ không được thực hiện. Nó sẽ chỉ được đọc dưới dạng byteVí dụ dưới đây cho thấy cách tệp được đọc từng byte bằng phương pháp
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
5Giá trị tham số 1 đảm bảo một byte được đọc trong mỗi lần gọi phương thức
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
6Thí dụ
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
đầu ra
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
Python đọc tệp nhị phân thành mảng byte
Trong phần này, bạn sẽ học cách đọc các tệp nhị phân thành một mảng byte
Đầu tiên, tệp được mở ở chế độ “
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
7“Một mảng byte có tên là
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
8 được khởi tạo bằng phương thức b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
9Sau đó, tệp được đọc từng byte một bằng cách sử dụng
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
40 và được thêm vào mảng byte bằng toán tử b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
41. Mỗi byte được thêm vào b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
42Cuối cùng, bạn có thể in
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
42 để hiển thị các byte được đọcThí dụ
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
4đầu ra
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
9Python đọc tệp nhị phân thành mảng có nhiều mảng
Trong phần này, bạn sẽ học cách đọc tệp nhị phân thành một mảng NumPy
Đầu tiên,
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
44 để nhập thư viện b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
45Sau đó chỉ định kiểu dữ liệu là
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
46 cho đối tượng b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
47 bằng cách sử dụng b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
48Tiếp theo, mở tệp nhị phân ở chế độ đọc
Bây giờ, hãy tạo mảng NumPy bằng phương thức
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
49 bằng đối tượng b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
47Tham số là đối tượng tệp và kiểu dữ liệu được khởi tạo dưới dạng byte. Điều này sẽ tạo ra một mảng byte NumPy
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
91Thí dụ
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
8đầu ra
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
9
Các byte được đọc vào mảng
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
45 và các byte được inĐọc tệp nhị phân từng dòng
Trong phần này, bạn sẽ học cách đọc tệp nhị phân theo từng dòng
Bạn có thể đọc từng dòng tệp bằng cách sử dụng phương thức
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
93 có sẵn trong đối tượng tệpMỗi dòng sẽ được lưu trữ dưới dạng một mục trong danh sách. Danh sách này có thể được lặp lại để truy cập từng dòng của tệp
Phương pháp
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
94 được sử dụng để xóa khoảng trắng ở đầu và cuối dòng trong khi in dòngThí dụ
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
3đầu ra
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
4Đọc tệp nhị phân đầy đủ trong một lần
Trong phần này, bạn sẽ học cách đọc tệp nhị phân trong một lần chụp
Bạn có thể làm điều này bằng cách chuyển
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
95 đến phương thức b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
96. Thao tác này sẽ đọc toàn bộ tệp nhị phân trong một lần chụp như hình bên dướiThí dụ
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
7đầu ra
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
0Python đọc tệp nhị phân và chuyển đổi sang Ascii
Trong phần này, bạn sẽ học cách đọc tệp nhị phân và chuyển đổi sang ASCII bằng thư viện binascii. Điều này sẽ chuyển đổi tất cả các byte thành ký tự ASCII
Đọc tệp dưới dạng nhị phân như đã giải thích trong phần trước
Tiếp theo, sử dụng phương pháp
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
97. Điều này sẽ chuyển đổi các byte thành b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
98 và trả về giá trị b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
98Sau đó, bạn có thể in cái này để kiểm tra các ký tự
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
98Thí dụ
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
1đầu ra
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
2Đọc tệp nhị phân vào khung dữ liệu
Trong phần này, bạn sẽ học cách đọc tệp nhị phân vào pandas dataframe
Trước tiên, bạn cần đọc tệp nhị phân thành một
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
81. Bởi vì không có phương pháp nào để đọc trực tiếp tệp nhị phân tới b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
82Khi bạn có
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
81, thì bạn có thể tạo một khung dữ liệu với b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
81Truyền dữ liệu mảng NumPy vào
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
85. Sau đó, bạn sẽ có khung dữ liệu với các byte được đọc từ tệp nhị phânThí dụ
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
3đầu ra
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
4Đây là cách bạn có thể đọc tệp nhị phân bằng NumPy và sử dụng mảng NumPy đó để tạo khung dữ liệu gấu trúc
Với mảng NumPy, bạn cũng có thể đọc các byte vào từ điển
Đọc tiêu đề bỏ qua tệp nhị phân
Trong phần này, bạn sẽ học cách đọc tệp nhị phân, bỏ qua dòng tiêu đề trong tệp nhị phân. Một số tệp nhị phân sẽ có tiêu đề ASCII trong đó
Phương thức bỏ qua tiêu đề này có thể hữu ích khi đọc các tệp nhị phân có tiêu đề ASCII
Bạn có thể sử dụng phương thức
b'\xd8'
b'\xff'
b'\xe0'
b'\x00'
b'\x10'
b'J'
b'F'
b'I'
b'F'
b'\x00'
b'\x01'
b'\x01'
b'\x00'
b'\x00'
b'\x01'
b'\x00'
b'\x01'
b'\x00'
b'\x00'
b'\xff'
b'\xed'
b'\x00'
b'|'
b'P'
b'h'
b'o'
b't'
b'o'
b's'
b'h'
b'o'
b'p'
b' '
b'3'
b'.'
b'0'
b'\xc6'
b'\xb3'
b'\xff'
b'\xd9'
b''
93 có sẵn trong đối tượng Tệp và chỉ định [1. ] như một tham số bổ sung. Điều này có nghĩa là dòng từ chỉ mục 1 sẽ được đọcDòng tiêu đề ASCII 0 sẽ bị bỏ qua
Thí dụ
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
5đầu ra
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
6Đọc tệp nhị phân bằng Pickle
Trong phần này, bạn sẽ học cách đọc các tệp nhị phân trong python bằng Pickle
Điều này thực sự phức tạp vì không thể đọc được tất cả các loại tệp nhị phân trong chế độ này. Bạn có thể gặp sự cố khi chọn tệp nhị phân. Vì lỗi khóa tải không hợp lệ có thể xảy ra
Do đó không nên sử dụng phương pháp này
Thí dụ
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
7đầu ra
try:
with open["c:\temp\Binary_File.jpg", "rb"] as f:
byte = f.read[1]
while byte:
# Do stuff with byte.
byte = f.read[1]
print[byte]
except IOError:
print['Error While Opening the file!']
8Phần kết luận
Đọc tệp nhị phân là một chức năng quan trọng. Ví dụ: đọc byte của tệp hình ảnh rất hữu ích khi bạn đang làm việc với các vấn đề phân loại hình ảnh. Trong trường hợp này, bạn có thể đọc tệp hình ảnh dưới dạng nhị phân và đọc các byte để tạo mô hình
Trong hướng dẫn này, bạn đã học các phương pháp khác nhau có sẵn để đọc các tệp nhị phân trong python và các thư viện khác nhau có sẵn trong đó