【问题标题】:How to decode a DAT file in python?如何在 python 中解码 DAT 文件?
【发布时间】:2018-08-26 00:12:39
【问题描述】:

我正在尝试从 DAT 文件中读取字节。我知道数据应该是二进制或十六进制。但是当我尝试读取字节时,它会打印出奇怪的符号。我假设它们是ascii值。我尝试转换它们,但我不断收到“str”无法转换的错误消息。有谁知道我如何解码它?并且 read() 是用于此的正确函数吗?

import time
import binascii
import csv
import serial

with open('Example CARESCAPE Datalog.dat') as binary_file:
    for num in range(1,10):
        data = binary_file.readline()
        print(data)

Here is the link to a screenshot of the weird symbols I get

【问题讨论】:

  • 二进制文件不会有任何有用的换行符概念。所以readline() 不会按预期工作。
  • 据我了解,这并不完全正确(尽管您说得对,这可能会产生误导):docs.python.org/3/library/io.html#io.IOBase.readline
  • 你是对的。我将其更改为 read() 以获取单个字节

标签: python read-write file-read


【解决方案1】:

如果您的.dat 文件不是文本,您应该使用'rb' 将其作为二进制文件打开(根据Python docs):

with open('Example CARESCAPE Datalog.dat', 'rb') as binary_file:

您必须自己解码字节:

注意: 以二进制模式打开的文件(包括模式参数中的“rb”)将内容作为字节对象返回,无需任何解码。

【讨论】:

  • 完美!为我工作。将其更改为 open('Example CARESCAPE Datalog.dat', 'rb') as binary_file:
猜你喜欢
  • 2015-02-19
  • 1970-01-01
  • 2021-04-08
  • 1970-01-01
  • 2021-12-09
  • 2020-05-04
  • 1970-01-01
  • 2022-01-16
  • 2022-10-05
相关资源
最近更新 更多