Tôi đã quen với C++ và tôi xây dựng các lớp/chức năng xử lý dữ liệu của mình để xử lý các đối tượng luồng thay vì tệp. Tôi muốn biết làm thế nào tôi có thể sửa đổi các mã sau đây, để nó có thể xử lý một dòng dữ liệu nhị phân trong bộ nhớ, chứ không phải là một tập tin xử lý.Sử dụng Python, làm cách nào để đọc/ghi dữ liệu trong bộ nhớ như tôi làm với một tệp?
def get_count(self):
curr = self.file.tell()
self.file.seek(0, 0)
count, = struct.unpack('I', self.file.read(c_uint32_size))
self.file.seek(curr, 0)
return count
Trong trường hợp này, mã giả self.file
là một tập tin, mở như vậy:
file = open('somefile.data, 'r+b')
Làm thế nào tôi có thể sử dụng cùng mã, tuy nhiên thay vì làm một cái gì đó như thế này:
file = get_binary_data()
Trường hợp get_binary_data()
trả về một chuỗi dữ liệu nhị phân. Mặc dù mã không hiển thị nó, tôi cũng cần ghi vào luồng (Tôi không nghĩ rằng nó đáng để đăng mã cho điều đó).
Ngoài ra, nếu có thể, tôi cũng muốn mã mới xử lý tệp.
_the trên liên kết đề cập không làm việc vì ("StringIO và cStringIO" bây giờ đã mất hết trong Python 3.0. Họ chỉ tồn tại trong 2.0. Io đã thay thế chúng trong 3.0 ") _ Xin lỗi cho bình luận này, nhưng có vẻ như một truyền thống cho câu trả lời này ... – tampe125