将文件夹中二进制bin文件每8个字节转浮点后转存到csv,并以bin文件命名
时间: 2024-04-13 11:29:57 浏览: 286
以下是一个将文件夹中的二进制 bin 文件每 8 个字节转换为浮点数后转存为 csv 文件,并以 bin 文件的名称进行命名的示例程序:
```python
import os
import csv
import struct
def convert_bytes_to_float(bytes_data):
float_value = struct.unpack('d', bytes_data)[0]
return float_value
def convert_bin_to_csv(directory):
for filename in os.listdir(directory):
if filename.endswith(".bin"):
bin_file_path = os.path.join(directory, filename)
csv_file_name = f"{filename.split('.')[0]}.csv"
csv_file_path = os.path.join(directory, csv_file_name)
with open(bin_file_path, 'rb') as bin_file, open(csv_file_path, 'w', newline='') as csv_file:
bin_data = bin_file.read()
float_values = []
for i in range(0, len(bin_data), 8):
bytes_data = bin_data[i:i+8]
float_value = convert_bytes_to_float(bytes_data)
float_values.append(float_value)
csv_writer = csv.writer(csv_file)
for float_value in float_values:
csv_writer.writerow([float_value])
# 指定包含 bin 文件的目录
directory = 'path/to/your/directory'
convert_bin_to_csv(directory)
```
将上述代码中的 `'path/to/your/directory'` 替换为包含二进制 bin 文件的目录路径。在这个示例程序中,我们假设每个 bin 文件中的每 8 个字节表示一个双精度浮点数。
运行该程序后,它将遍历文件夹中的所有 bin 文件,将每个文件的内容按照每 8 个字节转换为浮点数后,以每行一个浮点数的方式写入 csv 文件,并以原始 bin 文件的名称进行命名。请确保你已经安装了 Python,并且导入了 os、csv 和 struct 模块。
阅读全文