2016-06-12 39 views
-1

我是新的python。我有一個很大的文本文件,它有很多數字,看起來像這樣。數字之間有8個空格。在python中搜索與文本文件相關的數字和訪問信息?

100  200  300  400  500  .. 
101  201  301  401  501  .. 
102  202  302  402  502  .. 
..   ..   ..   ..   ..   .. 

我想要搜索從第一列中的數字(例如,100或101或102),只說我希望搜索101,然後我想在它前面像201使用號碼, 301,401等在我的代碼的不同地方。如何搜索我的需求的特定數字並單獨訪問它們前面的數字,因爲它們不會一起使用,它們都將在不同的地方單獨使用?謝謝。

+0

這並沒有真正回答我的問題。請給[mcve]。 – jonrsharpe

+0

與天體物理學有關,我必須做一些計算,有行星候選人名稱爲「2714」,並有與他們有關的參數。考慮一下,這個列表中的101是我的星球,201,301,401是這個星球的參數。我希望它在這個文件中打開這個文本文件搜索行星(我將使用raw_input輸入行星名稱),並給我索引或其他內容(如列表中的內容)。這樣我可以轉到同一個索引的其他列並選擇參數進行計算。我[1:2,1]會給我「201」。但是,我將如何獲得星球的指數來填補? – Salil

+0

對不起,我不小心發佈了沒有回答你的問題的第一條評論。 – Salil

回答

0

您可以打開文本文件和讀取它,然後存儲這些數字在列表中,這樣的:

handle = open(name, 'r') 
text = handle.read() 
numbers = text.split() 

要查找某個數值,使用循環通過列表來運行,並找到你想要的號碼的位置。 之後,如果您的文本文件遵循某種模式,則可以通過向索引添加固定值來訪問第一個數字前面的其他數字,以便查找列表中的其他位置。

舉例來說,如果你有這樣的文字:

3 13 

2 12 
1 11 

其名單將上面的代碼時,會是這樣:

['3','13','2','12','1','11'] 

所以,你可以對其中一個明確的想法其他期望的值將是。

+0

對不起,但數字沒有圖案,沒有任何圖案,這只是爲了說明。該文本文件很大,大約有15-20列參數,看起來像「527727.87092646223」,並且有大約數百行。我對使用文本文件很陌生。所以把它們改成列表可能不是最好的方法,我不知道只是假設。 – Salil

+0

由於您擁有固定數量的列和具有固定行數的已知數據,因此您有一個模式。如果第一列代表名稱,而其餘列則是參數:你總是知道在哪裏可以找到任何名字的第六個參數。它將位於列表中,索引等於:名稱索引+ 6.邏輯適用於所有數據。 –

+0

該文件有評論,所以當我使用這種方法時,它也包含評論。評論的篇幅各不相同,所以我無法真正把所有的字都算在內,我不認爲它可以處理不同的文件。我打開它們的方法是file =「/ home/sdha/.......」\ n x = np.genfromtxt(file)\ n。到目前爲止,我正在繪製完整列vs柱的圖,所以我在第一列中使用了x [:,0],在第二列中使用了x [:,1],這樣註釋就沒有問題,它們會被自動忽略。謝謝。 – Salil