2016-06-13 61 views
-1

我有這種類型的大DAT文件:的Python:模塊中斷DAT文件和搜索特定行

// 
AC T00020 
OS rat, Rattus norvegicus 
BS R02959; HS$APOA1_02; Quality: 6; APOA1, G000203; human, Homo sapiens. 
I have a large dat file of this type: 
// 
AC T00024 
OS rat, Rattus norvegicus 
BS R00135; HS$APOA1_01; Quality: 6; APOA1, G000203; human, Homo sapiens. 
// 
AC T00025 
OS human, Homo sapiens 
BS R02119; ANF$CONS_01; Quality: 4. 
BS R02333; MOUSE$ALBU_12; Quality: 6; Alb, G000464; mouse, Mus musculus. 
BS R02334; MOUSE$ALBU_13; Quality: 6; Alb, G000464; mouse, Mus musculus. 
// 
AC T00027 
OS clawed frog, Xenopus 
BS R02120; AP1$CONS; Quality: 6. 
// 

我首先要打破它的模塊在那裏開始,以「//」 結束然後,我只想保留那些具有'OS人類,HomosSapiens'的模塊。

我正在寫一個python腳本來實現這一點,但我不能在模塊中打破它。 我在Python 3.嘗試它

最後我想保持DAT文件的這一部分:

AC T00025 
OS human, Homo sapiens 
BS R02119; ANF$CONS_01; Quality: 4. 
BS R02333; MOUSE$ALBU_12; Quality: 6; Alb, G000464; mouse, Mus musculus. 
BS R02334; MOUSE$ALBU_13; Quality: 6; Alb, G000464; mouse, Mus musculus. 

回答

0

Open file and read使用f.read()內容,(不是逐行)。

Split由選定的字符或字符串。

# puts each text block as an item in a list 
items = s.split('//') 

Write結果。

+0

我是編程新手。我已閱讀並打開該文件。我想打破'//'之間的界限,將其分解爲不同的部分。我應該怎麼做? – Amy

+0

添加了代碼。你應該用''//''分隔字符串作爲分隔符。那麼你可以選擇像這樣的項目[2]或者像這樣打印所有項目:項目:print(item)' –

+0

我現在不能去下一行..你能解決嗎?上面提到的整個問題。 'code' 文件= 「FILE.DAT」 具有開放(文件, 'R')爲f: \t線= f.readline() \t項= line.split( '//') \t對於項目中的項目: \t \t print(item) 它明顯卡住在第一行本身,並不會進入下一行..我也必須保留那些有OS - 人的塊.. – Amy