亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

針對巨大的串聯文件優化腳本/循環以丟棄文件列表中的有缺陷的項目

針對巨大的串聯文件優化腳本/循環以丟棄文件列表中的有缺陷的項目

呼啦一陣風 2021-04-09 04:42:46
用一個真實的例子替換了例子文件;用代替nbratoms變量nbrbonds。初學者的問題。我想針對大型文件(100G +)優化以下腳本。我昨天發現了itertools的存在,但是沒有任何線索。f = open(sys.argv[1], "r")out = open(sys.argv[2], 'w')lines = f.read().split('\n@<TRIPOS>MOLECULE')for i in lines:     ii=i.split('\n@<TRIPOS>',4)     header=ii[0]    infos=header.split('\n')[2]    nbrbonds=infos.split(' ')[2]    if str(nbrbonds) in ii[2]:        out.write('\n@<TRIPOS>MOLECULE'+str(i))out.close()f.close()處理后的文件由串聯的200,000+個單個MOL2文件組成(下面的最后一個示例)。該腳本的思想是首先將輸入文件拆分為以兩個定界的項目@<TRIPOS>MOLECULE(=新MOL2文件的第一行);然后根據起始行拆分這些項目@<TRIPOS>為4個部分(即,@<TRIPOS>MOLECULE,@<TRIPOS>ATOM,@<TRIPOS>BOND和@<TRIPOS>ALT_TYPE)。對于每個單個MOL2文件,我想檢查14標題中(第二個)位置(每個單個MOL2文件中的不同)處的值@<TRIPOS>MOLECULEZ119822364414 14 0 0 0USER_CHARGES出現在單個文件的第3部分(以下)中:@<TRIPOS>BOND1       1       2 12       2       3 13       2       4 14       2       5 15       5       6 ar6       5      11 ar ...如果是這樣->用\n@<TRIPOS>MOLECULE第一行將其打印到outputfile (本質上就是單個MOL2文件的外觀)。它似乎可以正常工作,但是我擔心它太業余了。另外,我不知道如何實現避免輸出文件以這樣的雙頭標記開頭的步驟@<TRIPOS>MOLECULE@<TRIPOS>MOLECULEZ1198223644...任何幫助的歡迎!我加入了一個文件含有6個級聯MOL2文件; 奇數文件是正確的;甚至文件-錯誤。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 143 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號