Skip to main content
 首页 » 编程设计

python之Python 中的循环模式

2025年05月04日16kevingrace

我不太明白 Python 如何循环遍历列表和文件。

假设我有这样的文件:

文本文件:

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。 这是为什么?!

请您参考如下方法:

一旦循环执行了一次,并为文件中的每一行都打印了 ARA,它就会到达文件末尾并耗尽迭代器。如果你想让它返回并从头开始,你需要倒带它:

for k in statList: 
    for i in legend34413: 
        print k 
    legend34413.seek(0) 

现在您的代码将为文件中的每一行打印一次ARA。然后它将为文件中的每一行打印一次 BOQ,然后为每一行打印一次 BRE,依此类推。