2013-07-02 40 views
1

我想遍歷一個文件,並添加一個新的列到它而不是一個存在於文件中使用兩個併發for循環。但我不知道如何迭代數組部分。迭代遍歷一個文件和一個數組python for循環

我有一個數組AA = [1,2,3,4,5] 我的文件是:

I a 0 
II b 0 
III c 0 
IV d 0 
V f 0 

我希望它喜歡:

I a 1 
II b 2 
III c 3 
IV d 4 
V f 5 

我試圖Python代碼:

cmg=[1,2,3,4,5] 
fh=open("plink5.map",'r') 
fhnew=open("plink5.out",'w+') 
for line,i in zip(fh,(0,len(cmg)-1,1)): 
    line=line.strip('\n') 
    aa=line.split('\t') 
    aanew=str(aa[0])+"\t"+str(aa[1])+"\t"+str(cmg[i]) 
    print(aanew) 
    fhnew.write(aanew) 
fh.close() 
fhnew.close() 

我得到錯誤的陣列迭代部分

+2

你爲什麼不只是使用一個變量'arrayIndex'在你的循環,你手動增加每個時間? –

+0

@rob:我試過了。但是數組的第一個值只能追加 – Vignesh

+0

,實際上這是我的錯。我初始化了for循環中的arrayindex。所以每次存儲第一個值。我現在修好了。感謝您的時間先生 – Vignesh

回答

2

你所試圖做的是:

for line,i in zip(fh,range((0,len(cmg) ,1))): 
        ^^^^^   ^^ 

但是會更容易些:

for line,x in zip(fh, cmg): 
+0

謝謝。我試圖迭代通過數組,而不是採取這樣的價值!謝謝先生 – Vignesh

+0

還有一個疑問先生。雖然寫入float值到一個文件中,我已經用電子記號四捨五入了,例如8.9 + e05而不是0.000089。我如何在文件中獲得這個長格式化的浮點值? – Vignesh

+1

@Vignesh聽起來像一個新的問題! –

相關問題