我正在收集usb设备上的数据,并获得2组数据作为变量,其中包含200个数据点作为逗号分隔的字符串。如何将这些变量保存为计算机上的csv文件呢?理想情况下,我想我想在一个函数中执行此操作,因为我希望有效地为大量数据集重复此操作,而不会覆盖它们。
这是我目前的代码:
freq = instr.ask("FREQ:DATA?")
data = instr.ask("CALC:DATA:FDATa?")
#convert freq and data to strings comma-separated and then arrays of floats
datalist=data.split(',')
dataarray=np.array(datalist)
datafloat=dataarray.astype(np.float)
freqlist=freq.split(',')
freqarray=np.array(freqlist)
freqfloat=freqarray.astype(np.float)
#save data
output = np.column_stack((freqfloat, datafloat))
with open('output.csv','w') as f:
writer = csv.writer(f)
for row in output:
writer.writerow(row)
所以在这之后我想创建一个保存数据函数,我可以调用它并重复以后的数据集。欢迎任何帮助,谢谢!
答案 0 :(得分:0)
您可以使用Python标准库中的csv模块编写csv文件。
要在每次保存数据时生成新文件,可以使用数字生成文件名。增加数字,直到文件尚不存在。这是一个将数据连续保存到prefix_1.csv
,prefix_2.csv
等的函数,以此类推:
import csv
import os
def save_csv(file_prefix, data):
i = 1
file_name = file_prefix + '_' + str(i) + '.csv'
while os.path.isfile(file_name):
i = i + 1
file_name = file_prefix + '_' + str(i) + '.csv'
with open(file_name, 'w') as csvfile:
writer = csv.writer(csvfile)
for row in data:
writer.writerow(row)
# Save output to file data_x.csv
output = np.column_stack((freqfloat, datafloat))
save_csv('data', output)