You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python在CSV文件中实现双列数据写入?

解决CSV两列写入问题

原代码存在几个关键问题导致无法正确写入两列数据:

  • 打开文件时未指定写入模式,默认只读模式会引发权限错误
  • 每次循环重复打开文件,且未将细料百分比与计算出的X值配对
  • 初始化的rows为空列表,写入的内容都是空数据

下面是修正后的代码,两种实现方式任选其一:

方式一:先收集所有数据再一次性写入(推荐)

这种方式更高效,适合数据量不大的场景:

import csv

finespacking = 0.55
coarsepacking = 0.6
percentage_fines_agg = [0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60] 

# 收集每一行的两列数据:细料百分比 + 计算出的X值
rows = []
for item in percentage_fines_agg:
    x = (item/(1-item)) * (coarsepacking/finespacking) / (1-coarsepacking)
    rows.append([item, x])

# 写入CSV文件,newline=''避免多余空行
with open('tempmix.csv', 'w', newline='') as temp_mix_file:
    writer = csv.writer(temp_mix_file)
    writer.writerows(rows)

方式二:逐行写入

如果数据量很大,不想一次性占用内存,可以打开一次文件后逐行写入:

import csv

finespacking = 0.55
coarsepacking = 0.6
percentage_fines_agg = [0.48, 0.49, 0.50, 0.51, 0.52, 0.53, 0.54, 0.55, 0.56, 0.57, 0.58, 0.59, 0.60] 

with open('tempmix.csv', 'w', newline='') as temp_mix_file:
    writer = csv.writer(temp_mix_file)
    for item in percentage_fines_agg:
        x = (item/(1-item)) * (coarsepacking/finespacking) / (1-coarsepacking)
        writer.writerow([item, x])  # 每次写入一行两列数据

注意:原代码中的d63fine和d63coarse变量未被使用,可根据实际需求保留或删除。

内容的提问来源于stack exchange,提问作者yahya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 20:36:18