我不太明白Python如何遍历列表和文件。
假设我的文件看起来像这样:
textfile
:
Stations
--------
stn Name Parameter Data source Longitude/Latitude Coordinates [km] Elevation [m]
ARA Arolla rre250c0 XX XXX XXX 0
BOQ Bouquetins rre250c0 XX XXX XXX 0
BRE Bréona rre250c0 XX XXX XXX 0
CDR Col de Riedmatten rre250c0 XX XXX XXX 0
CTZ Crettaz rre250c0 XX XXX XXX 0
HOL Hohlicht rre250c0 XX XXX XXX 0
TRI Trift rre250c0 XX XXX XXX 0
TAP Täschalp rre250c0 XX XXX XXX 0
VOU Vouasson rre250c0 XX XXX XXX 0
那就是我的代码:
statList = ["ARA", "BOQ", "BRE", "CDR", "CTZ",
"FEP", "HOL", "TRI", "TAP", "VOU"]
legend34413 = open("textfile.txt", "r")
for k in statList:
for i in legend34413:
print k #always prints "ARA"
#do more stuff
然而,似乎我的第一个for循环不会遍历整个statList
。它只会为文件中的每一行打印ARA
,但不会打印下一行,即BOQ
。
那是为什么?!
答案 0 :(得分:4)
一旦循环执行一次,并为文件中的每一行打印ARA
,它将到达文件的末尾并耗尽迭代器。如果你想让它从头开始重新开始,你需要回放它:
for k in statList:
for i in legend34413:
print k
legend34413.seek(0)
现在,您的代码将为文件中的每一行打印ARA
一次。然后它会为文件中的每一行打印BOQ
一次,然后每行打印一次BRE
,依此类推。