[Python]判断文本文件中是否含有二进制数据

问题描述

处理文本文件时,按行读取文件中1的内容,采用如下的读取代码,遇到文本中存在二进制数据时是会保持的,需要采用二进制的读模式。

def process_data(line_data):
	print(line_data)

with open("data.txt", mode="r") as f:
    for line_data in f:
        process_data(line_data)

正常处理的1数据都是按照文本文件一行一行处理的,碰到这种情况,我采用了简单粗暴的处理方式,在上位机软件上直接丢出二进制数据,不处理此类数据 。文件处理之前,需要对整个文件内容进行扫描,判断是否含有二进制的数据,根据数据的情况,只要扫描到数据值大于127,将此文件判定为二进制文件。

size = 10240
max_value = 0
with open("data.txt", mode="rb") as f:
    part_data = f.read(size)
    max_value = max(part_data)
    while part_data:
        if max_value > 127:
            print("不支持含有二进制数据的文件!")
            exit(0)
         else:
        	part_data = f.read(size)
        

猜你喜欢

转载自blog.csdn.net/u013516331/article/details/108836809