使用 python 列表编写 csv 文件

Writing a csv file using python lists

我是 python 初学者。我得到了一个包含如下内容的数据文件:(这些是制表符分隔的)

(x values)    (y values)
113           0
116           2
119           0
214           3
220           0
230           3
290           5

从数据文件中,我必须删除 y 值为 0 的 x 和 y 数据。这是通过以下操作完成的。

import numpy as np

files = ['my_data.txt']

for file in files:
    data = np.loadtxt(file,unpack=True)
    data_filtered_both = data[:,data[1,:] != 0]
x_array=np.array(data_filtered_both[1])
y_array=np.array(data_filtered_both[0])

现在,我想创建一个 csv 文件,其中包含包含 x_array 和 y_array(制表符分隔)的新数据文件。看起来像这样..

(x_array)    (y_array)
116           2
214           3
230           3
290           5

到目前为止,我已经尝试了以下方法。

import csv
with open('text.csv', 'w') as f:
    writer = csv.writer(f, delimiter='\t')
    writer.writerows(zip(x_array,y_array)+'\n')
f.close()

我的python在writer.writerows(zip(x_array,y_array)+'\n')处显示了一个箭头,说明那一行可能写错了。我的内核在没有完成任务的情况下一直死去,所以我不确定它为什么不起作用。

这是创建 csv 文件的正确方法吗?或者还有其他建议吗?

谢谢!

甚至没有使用 csv 模块,下面是我如何解决这个问题的。

with open ("save_data.csv", "w") as file_object:
    for y, x in zip (y_array, x_array):
        file_object.write (("{}\t{}\n").format (y, x))

该代码不言自明,但如果您需要解释其工作原理,我将非常乐意提供帮助:)

此外,请记住,在使用 'with' 语句时,不必事后关闭文件,因为一旦缩进内的所有指令执行完毕,文件就会自动关闭。