我想打开一个文本文件使用csv模块,其中我有一些值,然后提取和两个单独的列表填充。为什么这个python列表在这种情况下显示为空?
这是文件example.txt的:
1,2
3,4
6,8
8,2
9,3
有在不同的场景不同的输出,当我尝试运行此代码:
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]
在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]
我已经使用不同的变量名称试过,但结果仍然相同。
如果我多次运行阅读器功能该怎么办?它仍会从同一文件中读取吗?或者我必须再次打开吗? –
@ashishkaran文件通过迭代同样耗尽,但您可以使用'file.seek(0)'来重置它们。不过不要担心,只需像最初建议的那样使用'list'即可。我怀疑你的文件太大,无法在内存中处理。如果是这样,无论如何你都不能指望它。 –