如何在csv文件的不同列中打印输出?

时间:2019-06-24 12:53:57

标签: python csv

我想在csv文件的不同列中打印程序的输出。实际输出仅在使用excel软件打开的csv文件中的一个单元格中显示。此外,数值结果似乎用方括号括起来(我不希望这样)。我想将结果绘制在不同的单元格中,彼此相邻。例如,第一个单元格“文本”,第二个单元格“数字”,第三个单元格“文本”。

我尝试了不同的定界符,例如'',',',但没有成功。

import numpy as np 
# DATA
width=0.66  

# WRITING  THE DATA
wii=np.empty([1,1])[0] 
wii[0]=round(width,3)
Width=[['Width' +str(wii)+ ' [m]']]

with open('Output.csv', 'w', newline='') as csvFile:       

    thewriter = csv.writer(csvFile, delimiter=',') 
    thewriter.writerows(Width)

我的预期结果将是以下结果: 宽度0.66 [m](“宽度0.66和[m]分别位于三个不同的像元中”)

相反,我得到:

宽度[0.66] [m](“宽度,[0.66]和[m]位于同一单元格中的位置”)

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

要实现这一目标,需要做一些改变:

  1. 您正在打印wii列表,而不是对象,因此将始终带有方括号。我已经解决了。
  2. writerow始终会将内容放入不同的单元格中,因此我将其更改为write
  3. 我添加了评论,以帮助您了解我的所作所为。

以下脚本输出:

enter image description here

import numpy as np 
import csv
#DATA
width=0.66  

#WRITING THE DATA
wii=np.empty([1,1])[0] 
wii[0]=round(width,3)
#print(wii[0]) prints 0.66 no bracket
#Width=['Width' +str(wii)+ 'm'] <- OP old
Width = ["Width", str(wii[0]), "[m]"] # <- NEW

with open('Output.csv', 'w', newline='') as csv_Reader:
    # Change from writerow
    csv_Reader.write(",".join(Width))