2012-06-03 67 views
1

我想沿文本文件中的列迭代腳本,但忽略前5列。Python:如何迭代文本文件中行中的特定列

目前我的腳本通過逐行評估第6列中的值來運行文本文件。我希望它通過所有行評估第6列,第7列,然後第8列等。我不想要作爲腳本讀取通過文件來評估每一行每一列,但整個文件評估列n運行,然後重複列N + 1

目前,我有簡單:

for line in Input: 
    line = line.rstrip() 
    fields = line.split("\t") 
    for col in row: 

但我想指定它忽略前5列,因爲這些不是目標(但仍然需要作爲文件中的信息)。

我想像爲行範圍6:20 col可能工作,但我是一個python初學者,不知道正確的方式來表達這在Python中。請讓我知道如何澄清這個問題是否太混亂。

非常感謝您的幫助。

最佳,

Rubal

+0

您可以使用'csv'模塊和'cols = row [5:]' – jfs

回答

4

如果你有一個列表row,然後row[a:b]是開始將元素號碼a元素和最新的範圍內,但不包括元素編號b

例如:

row = ['alpha', 'beta', 'gamma', 'delta', 'epsilon'] 

print row[2:4] 

的這個輸出是

['gamma', 'delta'] 

所以在一個循環中,你可以這樣寫:

for col in row[6:20]: 
    foo() 

另外,循環至年底與

for col in row[6:]: 
    foo() 
+1

+1:比我的回答更有用,考慮到OP的經驗水平 –

+0

兩者都是+1,@marshall爲了簡潔而給出了我給出的答案,而Eliot給出了堅實的解釋。 – Junuxx

+0

謝謝,那應該解決了艾略特鮑爾。什麼是foo()? – user964689

2

而不復制

for line in Input: 
    line = line.rstrip() 
    fields = line.split("\t") 
    for index in range(5, len(fields)): 
     #do_smth with fields[index] 
+0

謝謝大家,所有這些評論都很有用。我現在對如何創建這些迭代結構有了更多的瞭解! – user964689

4
for line in Input: 
    line = line.rstrip() 
    fields = line.split("\t") 
    for col in fields[5:]: 
     # process 
相關問題