Hướng dẫn how do you read hex values in python? - làm thế nào để bạn đọc các giá trị hex trong python?
Sử dụng Python 3, hãy giả sử tệp đầu vào chứa các byte mẫu bạn hiển thị. Ví dụ: chúng ta có thể tạo nó như thế này Show
Bây giờ, được đưa ra, chúng tôi muốn biểu diễn Hex của từng byte trong tệp đầu vào, thật tuyệt khi mở tệp ở chế độ nhị phân, mà không cố gắng giải thích nội dung của nó là ký tự/chuỗi (hoặc chúng tôi có thể đi theo lỗi ____10)
Nếu tệp lớn, chúng ta có thể muốn đọc một ký tự tại một thời điểm hoặc trong các khối. Với mục đích đó, tôi khuyên bạn nên đọc câu hỏi đáp này Python 3Kịch bản hiện không hoạt động trong Python 3. Ví dụ: 1 là cú pháp không hợp lệ trong Python 3, sử dụng 2 thay thế (như là một hàm).Bình luậnThật tuyệt khi bạn ghi lại mã. Tuy nhiên, một số nhận xét không thêm bất kỳ giá trị nào cho việc đọc trong tương lai: 3. Tôi không biết lỗi này là gì và câu trả lời từ Stackoverflow là gì.Cố gắng sử dụng tài liệu là tốt. Chẳng hạn trong hàm hex2dec:
Một số điều khác về chức năng trên:
Chạy nó!Như đã nói ở trên, sử dụng Python 3 không thể chạy nó. Thay đổi các câu lệnh in thành các chức năng đã khắc phục vấn đề này. Python 2 cũng hỗ trợ chức năng 2, vì vậy nó cũng không có vấn đề gì khi chạy trên Python 2.Chương trình chạy như mong đợi với một tệp chính xác và tạo một tệp đầu ra với các giá trị được chuyển đổi. Chạy nó bằng một tệp không hợp lệ hoặc không có đối số nào ở tất cả, làm hỏng chương trình với 8 hoặc 9 tương ứng. Nếu một tệp được đưa ra tồn tại nhưng có giá trị hexadecimal không hợp lệ trong đó (ví dụ như một chuỗi ngẫu nhiên), chương trình cũng gặp sự cố:
Các lỗi trên cho chúng tôi biết chúng tôi cần kiểm tra lỗi. Lỗi đầu tiên để giải quyết sẽ là 9 không đưa ra tên tệp là đối số khi chạy chương trình. Điều này có thể được giải quyết bằng cách sử dụng mô -đun CLI như 1, 2 hoặc có lẽ là một mô -đun khác mà bạn thích. Cá nhân tôi sử dụng Argparse, vì nó khá đơn giản và nó là một phần của thư viện tiêu chuẩn.Các đối số:
Tại thời điểm này, bạn có thể truy cập các đối số dòng lệnh 3 dưới dạng từ điển.Phần 4 của mã chỉ được áp dụng nếu nó chạy dưới dạng tập lệnh. Điều này có nghĩa là nếu tệp được nhập dưới dạng mô -đun, điều này sẽ không chạy. Xem thêm câu trả lời này để biết thêm thông tin.Khi chúng tôi chạy mã trên mà không có bất kỳ đối số nào, chúng tôi sẽ nhận được như sau:
Tiếp theo là 8. Cái này khá dễ giải quyết: Trước khi mở tệp, hãy kiểm tra xem nó có tồn tại bằng mô -đun 6 đã được nhập không:
9 cuối cùng có thể được giải quyết theo một số cách. Một người sẽ là sử dụng Regex trên dòng hiện tại của tệp để tìm bất kỳ giá trị thập lục phân nào. Giả sử chỉ có các giá trị thập lục phân nên nằm trên một dòng, nó trở nên đơn giản hơn rất nhiều. Chúng tôi chỉ có thể kiểm tra xem dòng bắt đầu với 8 (ví dụ: giá trị thập lục phân).Đọc tệp cũng nên được thực hiện theo từng dòng dưới dạng trình lặp, để ngăn các tệp khổng lồ làm hỏng chương trình của bạn bằng cách tiêu thụ bộ nhớ quá cao. Ngay bây giờ chương trình đọc tất cả các văn bản trong tệp vào bộ nhớ. Điều này có thể được thực hiện như mô tả trong 9:
Đặt điều này trong một chức năng của riêng nó cũng ngăn bạn mở tệp liên tục. Sản phẩm cuối cùng
Như bạn có thể thấy, hầu hết là kiểm tra lỗi hoặc đối số dòng lệnh. Chuyển đổi thực tế chỉ là một dòng mã. Cái gì tiếp theoMột vấn đề tôi vẫn tìm thấy:
Làm cách nào để giải mã một tệp hex trong python?Làm cách nào để giải mã một tệp hex trong Python ?.. HexString = "4869". A_String = byte. Fromhex (hexstring). A_String = a_String. Decode ("ASCII"). print(a_string). Làm thế nào để bạn đọc các giá trị thập lục phân?Chín số đầu tiên (0 đến 9) là cùng một số thường được sử dụng trong hệ thống thập phân.Sáu số hai chữ số tiếp theo (10 đến 15) được biểu diễn bằng các chữ cái từ A đến F. Đây là cách hệ thống HEX sử dụng các số từ 0 đến 9 và các chữ cái viết hoa A đến F để biểu diễn số thập phân tương đương.uses the numbers from 0 to 9 and the capital letters A to F to represent the equivalent decimal number.
Giá trị hex trong Python là gì?Chức năng Python hex () được sử dụng để chuyển đổi một số nguyên thành chuỗi thập lục phân chữ thường được đặt trước với số 0x 0x.Chúng ta cũng có thể chuyển một đối tượng cho hàm hex (), trong trường hợp đó, đối tượng phải có hàm __index __ () được xác định trả về số nguyên.Đối số số nguyên đầu vào có thể nằm trong bất kỳ cơ sở nào như nhị phân, bát phân, v.v.used to convert an integer to a lowercase hexadecimal string prefixed with “0x”. We can also pass an object to hex() function, in that case the object must have __index__() function defined that returns integer. The input integer argument can be in any base such as binary, octal etc.
Làm thế nào để bạn đọc byte như hex trong python?Cách đơn giản nhất là sử dụng hàm tích hợp hex () cho một byte theo nghĩa đen.Ngoài ra, hàm hexlify () từ mô -đun Binascii cũng có thể được sử dụng để tạo ra cùng một đầu ra.use the built-in function hex() to a byte literal. Alternatively, the hexlify() function from the binascii module can also be used to produce the same output. |