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

Saving list of strings to csv file?

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

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

您可以使用 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)