以下是一个按行读取文件,其中行分隔符是一个十六进制数的示例代码:
def read_file_with_hex_separator(file_path, separator):
lines = []
with open(file_path, 'rb') as file:
line = bytearray()
while True:
byte = file.read(1)
if not byte:
# 文件读取完毕,将最后一行添加到结果列表中
if line:
lines.append(line.decode())
break
if byte != separator:
# 将字节添加到当前行中
line.append(byte[0])
else:
# 遇到行分隔符,将当前行添加到结果列表中,并重置当前行
lines.append(line.decode())
line = bytearray()
return lines
# 示例用法
file_path = 'example.txt' # 文件路径
separator = b'\x0A' # 行分隔符,这里使用十六进制数0A表示换行符\n
lines = read_file_with_hex_separator(file_path, separator)
# 打印结果
for line in lines:
print(line)
在上述示例代码中,read_file_with_hex_separator
函数接受两个参数:file_path
表示文件路径,separator
表示行分隔符。函数首先打开文件,然后通过read
方法逐字节读取文件内容。如果读取的字节不是行分隔符,将其添加到当前行中;如果读取的字节是行分隔符,将当前行添加到结果列表中,并重置当前行。最后返回结果列表。
示例用法中,我们指定了文件路径file_path
和行分隔符separator
,然后调用read_file_with_hex_separator
函数读取文件内容,并将每行打印出来。