Pyguys
Lập trình viên tên Tim
Bài đăng. 17
Chủ đề. 6
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 0
#1
09-07-2020, 10. 45 CHlàm chủ đề. tôi muốn đọc một tập tin nhị phân. tôi cần một số bù đắp trong đó và kiểm soát bởi endian lớn hoặc nhỏ. nhưng tôi có vấn đề với nó.
path_xd = 'xxxxx' pattern = b'\x14\x02' reg_xd=re.compile[pattern] with open[path_xd, 'r+b'] as p_xd: data=p_xd.read[] for x in reg_xd.finditer[data]: offset=x.start[] p_xd.seek[offset] data_1402=p_xd.read[16] xd_name=int.from_bytes[data_1402[2:4], byteorder='little'] xd_name=[str[xd_name].replace['0', '']].zfill[2] print[xd_name] print[data_1402] print[data_1402[5:9]]tôi nhận được đầu ra như thế này
Output:
b'\x14\x02\x01\x00 \x00\x00\x00\x03\x18\x90BW#\x08\x00'
nó trông như thế nào trong terminalOutput:
402 0100 2000 0000 0318 9042 5723 [.... ......BW#
00000040: 0800 5723 0800
có vẻ như thiếu một số byte trong đầu ra python. tôi muốn kết quả có định dạng như thế này. cho tập tin đầy đủ. có vẻ như tôi đã hiểu lầm một cái gì đó ở đây. cần trợ giúp với đầu ra tệp hex và endian lớn/nhỏ xin vui lòng tư vấn. cảm ơn.
Output:
\x14\x02\x01\x00\x20\x00\x00\x00\x03\x18\x90\x42\x57\x23\x08\x00\x57\x23\x08\x00
Hồi đáp
Tìm thấy
Hồi đáp
Pyguys
Lập trình viên tên Tim
Bài đăng. 17
Chủ đề. 6
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 0
#2
Jul-12-2020, 01. 04 giờ sánglên. bất cứ ai có thể giúp đỡ?
Hồi đáp
Tìm thấy
Hồi đáp
bowlofred
Da Bishop
Bài đăng. 1.523
Chủ đề. 3
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 163
#3
Jul-12-2020, 03. 14 giờ sángTôi không hiểu đầu ra của bạn xuất hiện khi nào. Cái đầu tiên nói rằng bạn nhận được "đầu ra như vậy" và cái thứ hai nói rằng nó trông như thế nào trong thiết bị đầu cuối. Tôi hy vọng đầu ra của bạn sẽ ở trong một thiết bị đầu cuối. Làm cách nào để bạn tạo tệp đầu tiên và cách bạn tạo tệp thứ hai?
Bạn có ví dụ về tệp 'xxxxx' mà ai đó có thể thực thi mã của bạn không?
Hồi đáp
Tìm thấy
Hồi đáp
bowlofred
Da Bishop
Bài đăng. 1.523
Chủ đề. 3
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 163
#4
Jul-12-2020, 05. 32 giờ sángCó vẻ như ít nhất một phần bạn có chuỗi byte. Khi được in theo mặc định, nếu byte ánh xạ tới ký tự ASCII [như \x20], thì nó sẽ in ký tự đó. \x20 là khoảng trắng, vì vậy số 20 sẽ bị xóa và thay thế bằng khoảng trắng trong bản in của bạn.
Nếu bạn chỉ cần các giá trị hex, bạn có thể sử dụng [trong số những thứ khác] phương thức hex.
______4Nếu bạn muốn định dạng cụ thể, bạn có thể tách nó ra và thêm "\x" ở phía trước.
______5
Hồi đáp
Tìm thấy
Hồi đáp
Pyguys
Lập trình viên tên Tim
Bài đăng. 17
Chủ đề. 6
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 0
#5
13-07-2020, 02. 34 giờ sángCảm ơn bạn đã giúp đỡ
Hồi đáp
Tìm thấy
Hồi đáp
Phương thức tệp Python seek[] đặt vị trí hiện tại của tệp ở phần bù. Đối số wherece là tùy chọn và mặc định là 0, có nghĩa là vị trí tệp tuyệt đối, các giá trị khác là 1 có nghĩa là tìm kiếm tương ứng với vị trí hiện tại và 2 có nghĩa là tìm kiếm tương ứng với phần cuối của tệp
không có giá trị quay lại. Lưu ý rằng nếu tệp được mở để nối thêm bằng cách sử dụng 'a' hoặc 'a+', mọi thao tác tìm kiếm [] sẽ được hoàn tác ở lần ghi tiếp theo
Nếu tệp chỉ được mở để ghi ở chế độ chắp thêm bằng cách sử dụng 'a', thì phương pháp này về cơ bản là không hoạt động, nhưng nó vẫn hữu ích cho các tệp được mở ở chế độ chắp thêm có bật đọc [chế độ 'a+']
Nếu tệp được mở ở chế độ văn bản bằng cách sử dụng 't', chỉ các phần bù được trả về bởi Tell[] là hợp lệ. Việc sử dụng các phần bù khác gây ra hành vi không xác định
Lưu ý rằng không phải tất cả các đối tượng tệp đều có thể tìm kiếm được
cú pháp
Sau đây là cú pháp của phương thức seek[] −
fileObject.seek[offset[, whence]]
Thông số
offset − Đây là vị trí của con trỏ đọc/ghi trong tệp
wherece - Đây là tùy chọn và mặc định là 0 có nghĩa là vị trí tệp tuyệt đối, các giá trị khác là 1 có nghĩa là tìm kiếm tương ứng với vị trí hiện tại và 2 có nghĩa là tìm kiếm tương ứng với phần cuối của tệp
Làm cách nào để đọc dữ liệu từ tệp nhị phân trong Python?
Để đọc từ tệp nhị phân, chúng ta cần mở tệp đó bằng chế độ rb thay vì chế độ mặc định là rt . >>> với open["bài tập. zip", mode="rb"] dưới dạng zip_file. . nội dung = zip_file. đọc[].Làm cách nào để đọc tệp hình ảnh nhị phân trong Python?
Tệp nhị phân có thể bao gồm từ tệp hình ảnh như JPEG hoặc GIF, tệp âm thanh như MP3 hoặc định dạng tài liệu nhị phân như Word hoặc PDF. Trong Python, các tệp được mở ở chế độ văn bản theo mặc định. Để mở tệp ở chế độ nhị phân, khi chỉ định một chế độ, hãy thêm 'b' vào đó .Phần bù trong tệp nhị phân là gì?
Đệ nhị phân offset, còn được gọi là thừa-K, thừa-N, thừa-e, mã thừa hoặc biểu diễn sai lệch, là một phương pháp biểu diễn số có dấu trong đó số có dấu . .Làm cách nào để đọc tệp CSV nhị phân bằng Python?
Để đọc tệp nhị phân, hãy sử dụng hàm open['rb'] trong trình quản lý ngữ cảnh [ có từ khóa] và đọc nội dung của nó thành một biến chuỗi bằng f. readlines[] . Sau đó, bạn có thể chuyển đổi chuỗi thành CSV bằng nhiều cách tiếp cận khác nhau, chẳng hạn như mô-đun csv.