我有這段代碼用於從串口連接的機器收集數據,然後重新排序數據。 我可以成功地在最後打印我的數據:print pigment_data
Python 2.7導出數據在.csv中
但是我不明白怎麼出口這個數據到.csv
文件。
有沒有簡單的方法來做到這一點?
非常感謝你,
阿德里安
import serial # requires pyserial library
import csv
ser = serial.Serial(0)
data = []
while True:
name = raw_input("Pigment name [DONE to finish]: ")
if name == "DONE":
break
pigment_data = []
first = True
main_spect = []
while True:
line = ser.readline()
if first:
print " Data incoming..."
first = False
split = line.split()
if 10 <= len(split):
try:
wavelength = int(split[0])
measurements = [float(split[i]) for i in [2,4,6,8,10]]
pigment_data.append({"wavelength": wavelength,
"measurements": measurements})
main_spect.append(measurements[2])
except ValueError:
pass # handles the table heading
if line[:3] == "110":
break
data.append({"name": name,
"data": pigment_data})
print " Data gathered."
print pigment_data
# here's the problem:
with open('spectral_data.csv', 'wb') as f:
writer = csv.writer(f)
writer.writerows(pigment_data)
你說「這是問題」,但* *是什麼?錯誤(提供追溯)?意想不到的產出(提供投入,產出,預期產出)?一方面,你實際上並沒有把任何東西傳遞給'writerows()' – jonrsharpe
正確,抱歉,我的錯誤(見編輯) –
你只談到了我提出的最後一點,其他問題呢? – jonrsharpe