You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将.dat文件按8行数据块合并转换为规范CSV文件?

解决.dat文件转CSV:每8行合并为一行

没问题,你已经迈出了第一步,把数据加载到列表里了!接下来只需要完成分组合并写入CSV这两个步骤就行,我给你整理了完整的解决方案:

完整代码实现

import csv

# 你的文件路径(修正了原代码里的变量名笔误)
file_path = 'Downloads/Données.dat'
raw_data = []

# 读取并预处理数据:过滤空行,拆分每行内容
with open(file_path, 'r') as f:
    for line in f:
        cleaned_line = line.strip()
        # 跳过空行,避免干扰后续分组
        if cleaned_line:
            raw_data.append(cleaned_line.split())

# 核心步骤:每8行合并成一行
merged_rows = []
# 以步长8遍历数据,每次取一个8行的块
for i in range(0, len(raw_data), 8):
    # 取出当前块(如果最后一组不足8行也能正常处理)
    block = raw_data[i:i+8]
    # 将二维的块展平为一维列表(每个值对应CSV的一列)
    combined_row = [value for row in block for value in row]
    merged_rows.append(combined_row)

# 写入CSV文件
output_csv = 'merged_data.csv'
with open(output_csv, 'w', newline='') as csv_file:
    # 使用csv模块确保格式规范,避免特殊字符问题
    writer = csv.writer(csv_file)
    writer.writerows(merged_rows)

关键步骤解释

  1. 预处理数据:加入了空行过滤,避免原文件里的空行导致分组错位,保证数据干净。
  2. 分组合并:用range(0, len(raw_data), 8)实现每8行一组的切片,再通过列表推导式把每组的所有值展平成一行,正好对应CSV的一列。
  3. 写入CSV:使用Python内置的csv模块,比手动拼接逗号更稳妥,能自动处理潜在的格式问题(比如数据里意外出现的逗号),newline=''参数可以避免Windows系统下生成的CSV出现多余空行。

简化版(不用csv模块)

如果你的数据都是纯数值,不会有逗号之类的特殊字符,也可以直接手动写入:

output_csv = 'merged_data.csv'
with open(output_csv, 'w') as f:
    for row in merged_rows:
        f.write(','.join(row) + '\n')

内容的提问来源于stack exchange,提问作者ALEXANDRE W.

火山引擎 最新活动