Python通过不带括号字符的文件导出到文件

Python通过不带括号字符的文件导出到文件,python,python-2.7,csv,Python,Python 2.7,Csv,我成功地简化了从光谱仪导入数据的python模块 (我完全是个初学者,其他人为我编写了代码模型…) 我只有一个问题:一半的输出数据(在.csv文件中)用括号括起来:[] 我希望该文件包含如下结构: name, wavelength, measurement i、 e 但我得到的是: a,400,[0.34] a,410,[0.65] ... 有什么简单的解决方法吗 是因为测量是一个字符串 多谢各位 import serial # requires pyserial library ser

我成功地简化了从光谱仪导入数据的python模块 (我完全是个初学者,其他人为我编写了代码模型…)

我只有一个问题:一半的输出数据(在
.csv
文件中)用括号括起来:
[]

我希望该文件包含如下结构:

name, wavelength, measurement
i、 e

但我得到的是:

a,400,[0.34]
a,410,[0.65]
...
有什么简单的解决方法吗

是因为
测量
是一个
字符串

多谢各位

import serial  # requires pyserial library

ser  = serial.Serial(0)
ofile = file( 'spectral_data.csv', 'ab')

while True:
    name = raw_input("Pigment name [Q to finish]: ")
    if name == "Q":
        print "bye bye!"
        ofile.close()
        break

    first = True

    while True:
        line = ser.readline()
        if first:
            print "  Data incoming..."
            first = False
        split = line.split()
        if 10 <= len(split):
            try:
                wavelength = int(split[0])
                measurement = [float(split[i]) for i in [6]]
                ofile.write(str(name) + "," + str(wavelength) + "," + str(measurement) + '\n')

            except ValueError:
                pass    # handles the table heading
        if line[:3] == "110":
            break

    print "  Data gathered."
    ofile.write('\n')
import serial#需要pyserial库
ser=串行。串行(0)
ofile=文件('spectrum_data.csv','ab')
尽管如此:
名称=原始输入(“颜料名称[Q完成]:”)
如果名称==“Q”:
打印“再见!”
ofile.close()
打破
第一个=正确
尽管如此:
line=ser.readline()
如果首先:
打印“数据输入…”
第一个=错误
split=line.split()
如果10这样做:

measurement = [float(split[i]) for i in [6]]
ofile.write(str(name) + "," + str(wavelength) + "," + ",".join(measurement) + '\n')

ofile.write(str(name) + "," + str(wavelength) + "," + split[6] + '\n')

你在[6]中的[float(split[i])这一行上尝试了什么呢?
它与[code>[[float(split[6])]完全一样。嗨,不起作用。你确定你做得正确吗?什么是。join?谢谢你是说str.join(测量)?应该有效,你得到了什么?
join
获取一个列表,并将其转换为一个字符串,其中列表项与被调用的字符串分隔,在本例中为
。尝试一下。问题是
测量
是一个浮点,而不是获得:
名称、波长、测量
测量部分拆分为几个逗号:
>a、 400,[2.19]
(以前的结果)变成:
a,4002,,,1,9
你把我的两个建议结合起来了?也许我不清楚。我会编辑答案
ofile.write(str(name) + "," + str(wavelength) + "," + split[6] + '\n')