python代码,阅读目录下的所有文件,并逐个将二进制文件以八字节长度读取数据,将数据按xyz,xyz……排列方式输出一个为由xyz三列的dataframe,创建同名文件.csv并写入dataframe
时间: 2024-10-11 13:11:25 浏览: 39
python读取当前目录下的CSV文件数据
5星 · 资源好评率100%
在Python中,你可以使用`os`模块来列出目录下的所有文件,`struct`模块来处理二进制数据,以及`pandas`库来创建DataFrame。下面是一个示例代码片段,它实现了你的需求:
```python
import os
import struct
import pandas as pd
# 列出指定目录下的所有二进制文件
dir_path = './your_directory' # 替换为你的实际目录
binary_files = [f for f in os.listdir(dir_path) if f.endswith('.bin')]
data_list = []
for file_name in binary_files:
with open(os.path.join(dir_path, file_name), 'rb') as bin_file:
while True:
chunk = bin_file.read(8) # 每次读取8字节
if not chunk:
break
data_list.append(struct.unpack('8B', chunk)) # 解析成八位整数列表
# 将数据转换为二维数组,然后创建DataFrame
data_2d = [list(x) for x in zip(*data_list)] # 横向拼接所有文件的数据
df = pd.DataFrame(data_2d, columns=['x', 'y', 'z'])
# 写入CSV文件
output_filename = file_name.replace('.bin', '.csv') # 使用相同的文件名替换.bin为.csv
df.to_csv(output_filename, index=False)
# 输出 DataFrame 和 创建的CSV文件
print("DataFrame:")
print(df)
print(f"\nCSV 文件已保存为: {output_filename}")
```
在这个代码中,你需要将`./your_directory`替换为你想要读取二进制文件的实际目录。运行此脚本后,它会遍历目录下的二进制文件,每读取到8字节就解析一次,并将结果存储在一个DataFrame中。最后,DataFrame会被写入名为`.csv`的文件。
阅读全文