如何调整Python代码,使CSV行匹配目标字节字符串格式?
调整CSV写入格式以匹配字节计数直方图需求
现有写入代码
block_size = int(block_size) data_block = data[:block_size] encoded_data_block = base64.b64encode(data_block).decode("utf-8") csv_writer.writerow([encoded_data_block, label])
格式差异
当前生成的CSV行格式:
b'a2pUuzNscSX+UaAz9KAMtls+OeN08DtLa4WYri76IouKLNp+iXaKntSqKBQZLqIdG/xt4GWiXD08nI
参考示例的CSV行格式:
b'x\x9c\x9c\xbd\xcb\x8e\x1cW\x96-8\xe7W\x18\x1c(\x88\x04<\x02\x0c\xea\x9d\x1aQ$\xf5*QR\x89\xcc\xd2\xbdU\xa8\x81\xb9\xdb\xf1p\x13\xcd\xcd<\xed\x11A\xd7(q\xd1
修改方案
你当前用Base64编码了字节块,导致CSV存储的是Base64字符串;而参考格式是原始字节对象的Python字符串表示。要匹配格式,直接替换编码逻辑:
修改后的代码
block_size = int(block_size) data_block = data[:block_size] # 用字节对象的字符串表示替代Base64编码 encoded_data_block = repr(data_block) csv_writer.writerow([encoded_data_block, label])
读取还原说明
后续读取CSV时,可借助ast.literal_eval()将字符串还原为字节对象,再进行字节计数统计:
import ast import csv with open("your_data.csv", "r") as csv_file: reader = csv.reader(csv_file) for row in reader: data_str, label = row # 还原为字节对象 data_block = ast.literal_eval(data_str) # 执行字节计数频率统计逻辑 # ...
内容的提问来源于stack exchange,提问作者Sanku
相关产品推荐
相关产品推荐

