首页 > 解决方案 > 使用两个循环将结果写入 csv 文件

问题描述

我有以下部分代码:

  results=np.zeros((rules,max_n),dtype=int)
for n in v:
    print(n)
    dist=SimulationFramework(5,n,brute_force=False)
    results[:,n]=dist.distances()[:,0]
print(results)

np.save('a_5.csv', results)

dirname = os.path.dirname(os.path.abspath(__file__))
csvfilename = os.path.join(dirname, 'a_5.csv')

with open(csvfilename, 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=' ',quotechar='|',     quoting=csv.QUOTE_MINIMAL)
    for r in range(rules):
        for n in v:
            writer.writerows(r, n-3,results[r,n])

当我运行代码时,我收到此错误:

 TypeError: writerows() takes exactly one argument (3 given)

我对 Python 完全陌生。我有 3 个论点writerows(),但只采用了一个论点。如何使代码工作并将结果保存到 csv 文件中?

标签: python

解决方案


用于writerow写单行。它只接受一个参数。

with open(csvfilename, 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=' ',quotechar='|',     quoting=csv.QUOTE_MINIMAL)
    for r in range(rules):
        for n in v:
            writer.writerow((r, n-3,results[r,n]))

推荐阅读