将字符串列表保存到csv文件?

时间:2017-08-03 15:43:14

标签: python-3.x function csv save export-to-csv

我正在收集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)

所以在这之后我想创建一个保存数据函数,我可以调用它并重复以后的数据集。欢迎任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用Python标准库中的csv模块编写csv文件。

要在每次保存数据时生成新文件,可以使用数字生成文件名。增加数字,直到文件尚不存在。这是一个将数据连续保存到prefix_1.csvprefix_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)