CodeGym /Khóa học Java /Python SELF VI /Làm việc với tệp nhị phân

Làm việc với tệp nhị phân

Python SELF VI
Mức độ , Bài học
Có sẵn

5.1 Dữ liệu nhị phân

Làm việc với tệp nhị phân trong Python hơi khác so với làm việc với tệp văn bản, bởi vì tệp nhị phân chứa dữ liệu ở định dạng không dành cho người đọc. Thay vì chuỗi tệp nhị phân làm việc với byte.

Để làm việc với tệp nhị phân, ta sử dụng hàm open() với chế độ chứa ký tự 'b' (ví dụ, 'rb' để đọc, 'wb' để ghi và vân vân).

Ví dụ mở tệp nhị phân:

  • Đọc: 'rb'
  • Ghi: 'wb'
  • Thêm: 'ab'
  • Đọc và ghi: 'r+b', 'w+b', 'a+b'

Ví dụ:


file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()

Biến 'content' sẽ chứa một mảng byte.

Dữ liệu nhị phân (byte) là mức độ thấp nhất, cơ bản nhất để đại diện dữ liệu. Bất kỳ dữ liệu nào cũng có thể được đọc như nhị phân.

Điều đó có nghĩa là tệp văn bản luôn có thể được đọc như nhị phân, nhưng không phải tệp nhị phân nào cũng có thể được hiểu là văn bản.

5.2 Đọc tệp nhị phân

Đọc toàn bộ nội dung tệp

Phương thức read() đọc toàn bộ nội dung tệp dưới dạng byte.

Ví dụ:


file = open('example.bin', 'rb')
content = file.read()
print(content)
file.close()

Đọc một số byte nhất định

Phương thức read(n) đọc n byte từ tệp.

Ví dụ:


file = open('example.bin', 'rb')
content = file.read(10)  # Đọc 10 byte đầu tiên
print(content)
file.close()

Đọc từng dòng

Phương thức readline() đọc một dòng từ tệp. Trong trường hợp tệp nhị phân dòng kết thúc bằng ký tự xuống dòng (\n).

Ví dụ:


file = open('example.bin', 'rb')
line = file.readline()
print(line)
file.close()

Đọc tất cả các dòng

Phương thức readlines() đọc tất cả các dòng từ tệp và trả về chúng dưới dạng danh sách byte.

Ví dụ:


file = open('example.bin', 'rb')
lines = file.readlines()
for line in lines:
    print(line)
file.close()

Các phương thức làm việc với chuỗi có thể không hoạt động chính xác nếu bạn đọc một tệp không chứa văn bản: ví dụ, một tệp lưu trữ, hình ảnh hoặc video.

5.3 Ghi dữ liệu nhị phân

Phương thức write() ghi byte vào tệp. Dữ liệu để ghi phải ở dạng byte (bytes).

Đọc và ghi hình ảnh

Đọc hình ảnh từ tệp và ghi nó vào một tệp khác.


# Đọc hình ảnh
with open('input_image.jpg', 'rb') as infile:
    image_data = infile.read()
        
# Ghi hình ảnh
with open('output_image.jpg', 'wb') as outfile:
    outfile.write(image_data)

Cũng có thể ghi dữ liệu văn bản:

Ví dụ:


data = b"Hello, World!"
lines = [b"First line.\n", b"Second line.\n", b"Third line.\n"]
        
file = open('example.bin', 'wb')
file.write(data)
file.writelines(lines)
file.close()
1
Опрос
Làm việc với tệp tin,  21 уровень,  4 лекция
недоступен
Làm việc với tệp tin
Làm việc với tệp tin
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION