2016-05-13 33 views
0

現在我有這個格式的文件:看空項文件的某些列

enter image description here

我需要從5列6中的值進行比較,以我的投入,所以我想通過遍歷整個文件(假設文件f已經被實例化):

for line in f: 
     line = line.strip() 
     columns = line.split() 
     if (list[0] == columns[4]): 
      if (list[1] == columns[5]): 
       self.mass = float(columns[13]) + float(columns[14]) 

然而,因爲有時第一列具有空條目,我的「列」指數得到由1移過來,我會而是比較第6列和第7列的條目。有沒有辦法解決這個問題?

謝謝!!!

+1

爲什麼人們發佈文字圖像?這比複製/粘貼文本更容易嗎? –

+0

要點是你的格式不會告訴我們這些條目是以哪種方式對齊的,所以根據屏幕截圖回答你的問題其實很複雜。 –

+0

哦,對不起!我是新手,所以不知道哪種方法更好,再加上粘貼的時候它看起來並沒有對齊,所以... –

回答

1

我會假設你的文件實際上是一個製表符分隔的文件,在這種情況下,你可以把這個信號

line = line.strip() 
columns = line.split() 

改變這種

columns = line.split("\t") 

維護元素的數量在該陣列後分裂

如果不是這種情況,那麼你可能需要檢查你當前所在行的數組長度是爲了知道哪個ind exes來比較。

+0

這似乎沒有被製表符分隔,並且'列'的長度範圍從15-17(除了第一列以外,還有其他條目可以是空的),我不確定如何到達right column :( –

+0

既然如此,其他人可能會知道更好的方法,但是您可能只需檢查每行的列數,並使用不同的邏輯來比較基於多長的數組是這樣的,雖然這是一個非常冒險的方法,但是如果出現不同數量的列會使處理變得困難,您應該嘗試找出這些列是如何分開的,而且應該是您的分隔符。 – Jayson