2010年12月16日 星期四

第一次寫程式作業,就"沒"上手(三)

所以,在重覆呼叫類似的class後,就把網頁的部份截取下來了。

回顧為什麼程式不work的原因,可能有幾個。我把它標注在下面的程式碼中:

###建立解析HTML並送出純文字的CLASS(去除HTML TAG)
from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
  def handle_data(self, data):
  #這裏要用self當參數,把要import的用data丟進去。
    if "http" in data:
      self.jobIDurl = []
      #這裏,在class內部,要用self.XXXX,
      #不是HTMLParser.XXXX,也不是JPREDarser.XXXX
      #另外,要先定義字串常數,不然會出現錯誤
      self.jobIDurl.append(data)


###呼叫上面的class
JPREDParser = MyHTMLParser()
#呼叫完了,要注意可能暫時會傳不出來

for line in JPREDcontant.splitlines():
  JPREDParser.feed(line)

JPREDParser.close()
#安全一些,close後就可以呼叫了

jobID = str(JPREDParser.jobIDurl)
#呼叫的常數名稱變成JPREDParser.jobIDurl了,但是格式是list,要做轉換成字串。
jobID = jobID[60:70]

原來就是這樣的簡單啦!我真是豬頭,為了這個花了6小時解不開。

接下來,就是for while if的部份了。最後是輸出。我沒打算用GUI介面,800個RESIDUE在純文字下排列也不會漂亮。最後決定輸出到檔案好了。那檔名,就用當時資料送這程式的時間好了。所以我要另兩個FUNCTION,一個是讀寫I/O,一個是呼叫電腦的時間函數。這可以在下面兩個風網站找到。
時間函數   輸出輸入

於是乎,我終於把程式寫出來了。利用線上系統交出去之後才發現,也要交一個可執行檔。所以又花了點時間在PY2EXE上面。整體來講,我預估花了我近12個工作小時來做這個作業。

另外,我也發現一些蠻好玩的功能(如下圖):
字串除去空白  HTMLparser

希望以後不要有這麼複雜的作業。

沒有留言: