Python 3
Để có được một nhị phân trong một đại diện hex:
bin_data = open[path, 'rb'].read[]
import codecs
hex_data = codecs.encode[bin_data, "hex_codec"]
Nếu
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
7 đề cập đến một tệp PNG, thì một vài byte đầu tiên của import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
8 sẽ trông giống như import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
9 và đầu của import binascii
hex_data = binascii.hexlify[bin_data]
0 sẽ trông giống như import binascii
hex_data = binascii.hexlify[bin_data]
1. Để định dạng nó độc đáo, thêm khoảng trống:import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
Một vài byte đầu tiên tương ứng của
import binascii
hex_data = binascii.hexlify[bin_data]
2 sẽ trông giống như import binascii
hex_data = binascii.hexlify[bin_data]
3.Thay thế cho
import binascii
hex_data = binascii.hexlify[bin_data]
4, import binascii
hex_data = binascii.hexlify[bin_data]
5 có thể được sử dụng:import binascii
hex_data = binascii.hexlify[bin_data]
Xem câu trả lời của JFS để biết ví dụ chi tiết hơn bằng cách sử dụng
import binascii
hex_data = binascii.hexlify[bin_data]
5.Python 2
Để có được một nhị phân trong một đại diện hex:
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
Nếu
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
7 đề cập đến một tệp PNG, thì một vài byte đầu tiên của import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
8 sẽ trông giống như import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
9 và đầu của import binascii
hex_data = binascii.hexlify[bin_data]
0 sẽ trông giống như import binascii
hex_data = binascii.hexlify[bin_data]
1. Để định dạng nó độc đáo, thêm khoảng trống:import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
Một vài byte đầu tiên tương ứng của
import binascii
hex_data = binascii.hexlify[bin_data]
2 sẽ trông giống như import binascii
hex_data = binascii.hexlify[bin_data]
3. Trong Python, mô -đun IO cung cấp các phương thức của ba loại hoạt động IO; Các tập tin nhị phân thô, tệp nhị phân được đệm và tệp văn bản. Cách kinh điển để tạo một đối tượng tệp là bằng cách sử dụng hàm
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
4.Bất kỳ hoạt động tệp nào cũng có thể được thực hiện trong ba bước sau:
- Mở tệp để lấy đối tượng tệp bằng hàm Open-in [] tích hợp. Có các chế độ truy cập khác nhau mà bạn có thể chỉ định trong khi mở tệp bằng hàm Open [].
- Thực hiện đọc, viết, phụ lục các hoạt động bằng cách sử dụng đối tượng tệp được lấy từ hàm
4.bin_data = open[path, 'rb'].read[] hex_data = bin_data.encode['hex']
- Đóng và xử lý đối tượng tệp.
Đọc tệp
Đối tượng tệp bao gồm các phương thức sau để đọc dữ liệu từ tệp.
- Đọc [chars]: Đọc số lượng ký tự được chỉ định bắt đầu từ vị trí hiện tại.
- Readline []: Đọc các ký tự bắt đầu từ vị trí đọc hiện tại cho đến một ký tự mới.
- Readlines []: Đọc tất cả các dòng cho đến khi kết thúc tệp và trả về một đối tượng danh sách.
Tệp
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
6 sau đây sẽ được sử dụng trong tất cả các ví dụ về đọc và ghi tệp.This is the first line.
This is the second line.
This is the third line.
Ví dụ sau thực hiện thao tác đọc bằng phương pháp
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
7.>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
Ở trên,
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
8 mở bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
9 trong chế độ đọc mặc định từ thư mục hiện tại và trả về một đối tượng tệp. Hàm import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
0 đọc tất cả nội dung cho đến khi EOF dưới dạng chuỗi. Nếu bạn chỉ định đối số kích thước char trong phương thức bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
7, thì nó sẽ chỉ đọc rằng nhiều ký tự. import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
2 sẽ xả và đóng luồng.Đọc một dòng
Ví dụ sau đây cho thấy đọc một dòng từ tệp.
>>> f = open['C:\myfile.txt'] # opening a file
>>> line1 = f.readline[] # reading a line
>>> line1
'This is the first line. \n'
>>> line2 = f.readline[] # reading a line
>>> line2
'This is the second line.\n'
>>> line3 = f.readline[] # reading a line
>>> line3
'This is the third line.'
>>> line4 = f.readline[] # reading a line
>>> line4
''
>>> f.close[] # closing file object
Như bạn có thể thấy, chúng tôi phải mở tệp ở chế độ
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
3. Phương thức import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
4 sẽ trả về dòng đầu tiên và sau đó sẽ trỏ đến dòng thứ hai trong tệp.Đọc tất cả các dòng
Sau đây đọc tất cả các dòng bằng hàm
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
5.>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.readlines[] # reading all lines
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
Đối tượng tệp có một trình lặp sẵn có. Chương trình sau đây đọc từng dòng tệp đã cho cho đến khi
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
6 được nâng lên, tức là, EOF đạt được.f=open['C:\myfile.txt']
while True:
try:
line=next[f]
print[line]
except StopIteration:
break
f.close[]
Sử dụng vòng lặp để đọc một tập tin dễ dàng.
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
0This is the first line.
This is the second line.
This is the third line.
Đọc tệp nhị phân
Sử dụng chế độ 'RB' trong hàm
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
4 để đọc các tệp nhị phân, như được hiển thị bên dưới.import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
2Ghi vào một tệp
Đối tượng tệp cung cấp các phương thức sau để ghi vào một tệp.
- Viết [các]: Viết chuỗi S vào luồng và trả về số lượng ký tự được viết.
- WriteLines [dòng]: Viết một danh sách các dòng vào luồng. Mỗi dòng phải có một dải phân cách ở cuối của nó.
Tạo một tệp mới và ghi
Sau đây tạo ra một tệp mới nếu nó không tồn tại hoặc ghi đè lên một tệp hiện có.
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
3Trong ví dụ trên, câu lệnh
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
8 mở bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
9 ở chế độ ghi, phương thức bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
4 trả về đối tượng tệp và gán nó cho một biến This is the first line.
This is the second line.
This is the third line.
1. This is the first line.
This is the second line.
This is the third line.
2 Chỉ định rằng tệp nên được ghi. Tiếp theo, This is the first line.
This is the second line.
This is the third line.
3 ghi đè lên một nội dung hiện có của tệp bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
9. Nó trả về số lượng ký tự được ghi vào một tệp, là 5 trong ví dụ trên. Cuối cùng, import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
2 đóng đối tượng tệp.Nối vào một tệp hiện có
Sau đây, nối thêm nội dung ở cuối tệp hiện có bằng cách truyền chế độ
This is the first line.
This is the second line.
This is the third line.
6 hoặc This is the first line.
This is the second line.
This is the third line.
7 trong phương thức bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
4.import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
4Viết nhiều dòng
Python cung cấp phương thức
This is the first line.
This is the second line.
This is the third line.
9 để lưu nội dung của đối tượng danh sách trong một tệp. Vì ký tự Newline không được tự động ghi vào tệp, nên nó phải được cung cấp như một phần của chuỗi.import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
5Mở một tệp có chế độ "W" hoặc chế độ "A" chỉ có thể được ghi vào và không thể đọc được từ. Tương tự chế độ "R" cho phép chỉ đọc và không viết. Để thực hiện các hoạt động đọc/nối đồng thời, hãy sử dụng chế độ "A+".
Viết vào một tệp nhị phân
Hàm
bin_data = open[path, 'rb'].read[]
hex_data = bin_data.encode['hex']
4 mở một tệp ở định dạng văn bản theo mặc định. Để mở một tệp ở định dạng nhị phân, thêm >>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
1 vào tham số chế độ. Do đó, chế độ >>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2 mở tệp ở định dạng nhị phân để đọc, trong khi chế độ >>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
3 mở tệp ở định dạng nhị phân để viết. Không giống như các tệp văn bản, các tệp nhị phân không thể đọc được của con người. Khi được mở bằng bất kỳ trình soạn thảo văn bản nào, dữ liệu không thể nhận ra.Mã sau đây lưu trữ một danh sách các số trong tệp nhị phân. Danh sách lần đầu tiên được chuyển đổi trong một mảng byte trước khi viết. Hàm tích hợp bytearray [] trả về biểu diễn byte của đối tượng.
import re
hex_with_spaces = re.sub['[..]', r'\1 ', hex_data]
6