在python中使用csv.writerow()编写csv时的额外字符(quotechar)

在python中使用csv.writerow()编写csv时的额外字符(quotechar),python,csv,delimiter,writer,Python,Csv,Delimiter,Writer,我正在尝试使用以下代码在python的csv文件中写入数据: with open('test.csv', 'w') as csvfile: writer = csv.writer(csvfile, delimiter=',') writer.writerow(['filename', 'pump_wavelength', 'input_pump_power', 'signal_wavelength', 'input_signal_power', 'output

我正在尝试使用以下代码在python的csv文件中写入数据:

with open('test.csv', 'w') as csvfile:
writer = csv.writer(csvfile, delimiter=',')

writer.writerow(['filename', 'pump_wavelength', 'input_pump_power', 'signal_wavelength', 'input_signal_power',
                 'output_idler_wavelength', 'output_idler_power', 'delta_beta', 'gamma'])
for i in z:
    ---------- some code to get values to be written --------------
    writer.writerow([filename, pump_wavelength, input_pump_power, signal_wavelength, input_signal_power,
                     output_idler_wavelength, output_idler_power, delta_beta, gamma])
提供以下输出:

  filename,pump_wavelength,input_pump_power,signal_wavelength,input_signal_power,output_idler_wavelength,output_idler_power,delta_beta,gamma
  5.SPE,1555.503,6.654,1554.507,0.054,1554.9618225,-62.3483855665,-6.55390005475,"(1.4790380500687297, -6.5539000547525852, 0.00015485724131853652)"
  6.SPE,1555.503,6.654,1554.507,0.054,1555.09420064,-62.0169964106,-6.55390005475,"(1.5365574572884448, -6.5539000547525852, 0.00015485724131853652)"

为什么在csv文件中写入的每行最后三个值周围都有“(和)”?我使用的是python 3。

这没关系,因为该值本身包含逗号,因此可能会被错误读取。CSV模块根据标准自动将其括在引号中。

您正在文件中写入9个值,其中最后一个值是三元组

,因为
gamma
不是浮点,它可能是
元组
str
。尝试在for循环中打印(键入(gamma),gamma)。不要在las的三个值周围打印,而是打印最后一个值。您正在编写9个值。谢谢。是的,gamma本来是一个浮点数,但我返回的是三个浮点数的元组。问题解决了。