Tôi đang cố đọc một tệp BMP trong Python. Tôi biết hai byte đầu tiên chỉ ra công ty BMP. 4 byte tiếp theo là kích thước tệp. Khi tôi thực hiện:
Tôi có:
Những gì tôi muốn làm là đọc bốn byte đó như một số nguyên, nhưng có vẻ như Python đang đọc chúng dưới dạng ký tự và trả lại một chuỗi, không thể chuyển đổi thành một số nguyên. Làm thế nào tôi có thể làm điều này một cách chính xác?
Lucas w 8923 Huy hiệu vàng10 Huy hiệu bạc23 Huy hiệu đồng3 gold badges10 silver badges23 bronze badges Đã hỏi ngày 22 tháng 7 năm 2009 lúc 6:48Jul 22, 2009 at 6:48
MANUEL ARAOZMANUEL ARAOManuel Araoz 15.7K22 Huy hiệu vàng70 Huy hiệu bạc94 Huy hiệu đồng22 gold badges70 silver badges94 bronze badges 2 Phương thức 0 trả về một chuỗi byte dưới dạng chuỗi. Để chuyển đổi từ chuỗi byte chuỗi thành dữ liệu nhị phân, hãy sử dụng mô-đun 1 tích hợp: http://docs.python.org/l Library/struct.html.
Lưu ý rằng 2 luôn trả về một tuple, do đó 3 mang lại giá trị số nguyên mà bạn đang theo sau.Bạn có thể nên sử dụng chuỗi định dạng 4 (
Rufflewind 8.3322 Huy hiệu vàng35 Huy hiệu bạc53 Huy hiệu Đồng2 gold badges35 silver badges53 bronze badges Đã trả lời ngày 22 tháng 7 năm 2009 lúc 6:59Jul 22, 2009 at 6:59
8 Một phương pháp thay thế không sử dụng 'struct.unpack ()' sẽ là sử dụng Numpy:
'DTYPE' đại diện cho kiểu dữ liệu và có thể là int#, uint#, float#, phức tạp#hoặc loại do người dùng xác định. Xem 5.Cá nhân thích sử dụng Numpy để làm việc với dữ liệu mảng/ma trận vì nó nhanh hơn rất nhiều so với việc sử dụng danh sách Python.
Đã trả lời ngày 29 tháng 7 năm 2012 lúc 21:51Jul 29, 2012 at 21:51
EMANUEL EYEMANUEL EYEmanuel Ey 2.5745 huy hiệu vàng29 Huy hiệu bạc37 Huy hiệu đồng5 gold badges29 silver badges37 bronze badges 3 Kể từ Python 3.2+, bạn cũng có thể thực hiện điều này bằng phương pháp INT gốc 6:
Lưu ý rằng chức năng này yêu cầu bạn chỉ định xem số đó được mã hóa ở định dạng lớn hay ít, vì vậy bạn sẽ phải xác định tính endian để đảm bảo nó hoạt động chính xác. Đã trả lời ngày 8 tháng 5 năm 2017 lúc 21:33May 8, 2017 at 21:33
CrepegoatcrepegoatCrepeGoat 2.13717 Huy hiệu bạc22 Huy hiệu đồng17 silver badges22 bronze badges 6 Ngoại trừ 1 Bạn cũng có thể sử dụng mô -đun 8
Đã trả lời ngày 22 tháng 7 năm 2009 lúc 7:10Jul 22, 2009 at 7:10
Nick Dandoulakisnick DandoulakisNick Dandoulakis 41.9K15 Huy hiệu vàng102 Huy hiệu bạc136 Huy hiệu đồng15 gold badges102 silver badges136 bronze badges 3 Khi bạn đang đọc tệp nhị phân, bạn cần giải nén nó vào một số nguyên, vì vậy hãy sử dụng mô -đun cấu trúc cho điều đó
Đã trả lời ngày 22 tháng 7 năm 2009 lúc 7:03Jul 22, 2009 at 7:03
Anurag uniyalanurag uniyalAnurag Uniyal 83.7K39 Huy hiệu vàng170 Huy hiệu bạc216 Huy hiệu đồng39 gold badges170 silver badges216 bronze badges 1 Khi bạn đọc từ một tệp nhị phân, một loại dữ liệu được gọi là byte được sử dụng. Đây là một chút giống như danh sách hoặc tuple, ngoại trừ nó chỉ có thể lưu trữ số nguyên từ 0 đến 255. Try:
Or:
Thay vì:
Đã trả lời ngày 10 tháng 4 năm 2018 lúc 21:02Apr 10, 2018 at 21:02
Đây là một giải pháp muộn nhưng tôi mặc dù nó có thể giúp ích.
Đã trả lời ngày 6 tháng 2 lúc 4:58Feb 6 at 4:58
|