import struct import pandas as pd def read_binary_file(file_path): with open(file_path, 'rb') as f: # 读取前8个字节,表示数据列数 num_columns_bytes = f.read(8) num_columns = struct.unpack('>q', num_columns_bytes)[0] print(f"Number of columns: {num_columns}") # 读取接下来的8个字节,表示起始日期 start_date_bytes = f.read(8) start_date = struct.unpack('>d', start_date_bytes)[0] print(f"Start date: {start_date}") # 初始化DataFrame data = [] timestamps = [] while True: # 读取每个数据块的分钟数 minute_bytes = f.read(8) if not minute_bytes: break # 文件结束 minute = struct.unpack('>d', minute_bytes)[0] timestamps.append(minute) # 读取数据行数 * 8 字节的数据 data_bytes = f.read(num_columns * 8) if not data_bytes: break # 文件结束 data_values = struct.unpack(f'>{num_columns}d', data_bytes) data.append(data_values) # 创建DataFrame df = pd.DataFrame(data, columns=[f'Column_{i+1}' for i in range(num_columns)]) df.insert(0, 'Timestamp', timestamps) return df # 读取文件并打印关键信息 file_path = 'lz.rivqdown.dat' df = read_binary_file(file_path) print(df.head())