我试图打开一个文本文件使用csv模块,我有一些值,然后提取和两个单独的列表填充。在
这是示例.txt文件:
1,2
3,4
6,8
8,2
9,3
当我尝试运行此代码时,在不同的场景中有不同的输出:
^{pr2}$在ipython中,当我引用x和y时,它输出y的空列表
对于x:
[1, 3, 6, 8, 9]
对于y:
[]
但是如果我注释掉填充x的行,那么引用y将返回相应的列表。在
with (open('A:\WorkSpace--Python\Plotter\MainSource\example.txt','r')) as egFile:
plot=csv.reader(egFile,delimiter=',')
'''x=[int(row[0]) for row in plots]'''
y=[int(row[1]) for row in plots]
输出y:
[2,4,8,2,3]
我尝试使用不同的变量名,但结果仍然相同。在
根据@Alex的回答,您可以使用显式循环来设置x,y值:
csv.reader
是一个lazy(意味着它只在需要时生成数据)迭代器,当您迭代一次它就会耗尽它,就像生成器一样。在声明x
之后,它是空的。在您可以使用
list
来实现它,以允许多次迭代:但是,如果CSV文件很大,这将占用大量内存,尽管在这种情况下它并没有真正的区别,因为您无论如何都要将所有值保存在}中。在
x
和{另一种选择是:
^{pr2}$或者
相关问题 更多 >
编程相关推荐