从两个文件创建python浮动列表
我有两个文件,我将用于打印。一个包含x、y范围,另一个包含数据 下面是我使用CSV阅读器从一个文件中获取数据的代码 (我在.dat范围内的每一行文件中都有x,y\n格式的数据)从两个文件创建python浮动列表,python,csv,Python,Csv,我有两个文件,我将用于打印。一个包含x、y范围,另一个包含数据 下面是我使用CSV阅读器从一个文件中获取数据的代码 (我在.dat范围内的每一行文件中都有x,y\n格式的数据) 现在的问题是,我还需要来自同一行的data.dat的数据,并希望将其附加到[x,y],这样最终的列表将是[x,y,data]。有没有什么方法可以让我在同一个for循环中遍历数据.dat内容。最好是将这两个阅读器放在一起。如果您使用的是Python2,那么应该使用获取生成器;对于Python3,您只需使用zip for r
现在的问题是,我还需要来自同一行的
data.dat
的数据,并希望将其附加到[x,y],这样最终的列表将是[x,y,data]。有没有什么方法可以让我在同一个for循环中遍历数据.dat
内容。最好是将这两个阅读器放在一起。如果您使用的是Python2,那么应该使用获取生成器;对于Python3,您只需使用zip
for row, data in itertools.izip(reader, reader1):
x, y = map(float, row[0:2])
print [x,y, data]
或者,您也可以在另一个读卡器上调用next
:
for row in reader:
data = next(reader1)
...
最好的办法可能是将这两个读者压缩在一起。如果您使用的是Python2,那么应该使用获取生成器;对于Python3,您只需使用
zip
for row, data in itertools.izip(reader, reader1):
x, y = map(float, row[0:2])
print [x,y, data]
或者,您也可以在另一个读卡器上调用next
:
for row in reader:
data = next(reader1)
...
@希玛,不客气。请注意,在Python2.x上仅使用
zip
时,这将同时读取两个文件并将其内容存储在列表中。如果文件非常大,您应该使用izip
,这将在内存中每个文件只保留一行。我使用的是python 2.7,但将来我将处理包含数百万此类数据的大型文件,因此itertools.izip将对我产生影响。。最好从现在开始使用它。“一次读取文件”是什么意思?在zip中,它只逐行读取并返回列表,而itertools.izip返回迭代器,对吗?@Hima尝试一下。删除for
循环,改为执行打印zip(…)
,或打印类型(zip(…)
izip
和zip
都将创建一个生成器。@Hima不客气。请注意,在Python2.x上仅使用zip
时,这将同时读取两个文件并将其内容存储在列表中。如果文件非常大,您应该使用izip
,这将在内存中每个文件只保留一行。我使用的是python 2.7,但将来我将处理包含数百万此类数据的大型文件,因此itertools.izip将对我产生影响。。最好从现在开始使用它。“一次读取文件”是什么意思?在zip中,它只逐行读取并返回列表,而itertools.izip返回迭代器,对吗?@Hima尝试一下。删除for
循环,改为执行打印zip(…)
,或打印类型(zip(…)
izip
和zip
都将创建一个生成器。