从二进制读取float(每个数字4个字节)到csv文件

时间:2018-05-22 12:49:04

标签: python

我想从二进制文件读取浮点值并将它们写入csv文件,这几乎与下面的代码一起使用。问题是struct.unpack正在编写浮点值,如:

  

(数)

我想在没有paranteses的情况下编写它,()。

有没有更好的方法将值作为浮点数而不是使用解压缩或者您的建议?

count = 0
output_file = open(r"C:\Users\heltbork\Desktop\binTocsvDirect\00000006.txt", "w")

with open(r"C:\Users\heltbork\Desktop\binTocsvDirect\00000006.bin", "rb") as f:
    while True:
        byte = f.read(4)
        if not byte:
            break
        output_file.write(str(unpack('f', byte)))
        count = count + 1
        if count == 6:
            count = 0
            output_file.write("\n")

1 个答案:

答案 0 :(得分:1)

它只是def load_bace_classification(featurizer='ECFP', split='random', reload=True): """Load bace datasets.""" # Featurize bace dataset print("About to featurize bace dataset.") data_dir = deepchem.utils.get_data_dir() if reload: save_dir = os.path.join(data_dir, "bace_c/" + featurizer + "/" + str(split)) dataset_file = os.path.join(data_dir, "bace.csv") if not os.path.exists(dataset_file): deepchem.utils.download_url('http://deepchem.io.s3-website-us-west-1.amazonaws.com/datasets/bace.csv' ) 的字符串形式。

tuple

返回unpack(...) 。这在docs

中说明
  

...结果是一个元组,即使它只包含一个项目。

如果你想要第一个元素:

tuple

在您的代码中,使用:

first = unpack('f', byte)[0]

提示:使用csv module