340.collins字典解析3

在Debug過程中遇到了很多錯誤,后面發現都是沒有統一的格式化文本造成的,尤其是在星級前面的空格,耽誤了很多時間。

def digitize_star(_star):
    '''
    :param _star: 詞典中提取的星級圖形符號,如''
    :return: 數字星級1-5
    '''
    n = 0
    for i in range(5):
        if  _star[i] == '':
            n += 1
        else:
            return n
    return n

f = open("E:/Desktop/collins.txt", 'r', encoding='utf-8')
def process_line(line):
    soup = BeautifulSoup((line), 'html.parser')
    _word = soup.font.string
    _star = soup.find_all('font')
    _num = 0
    for t in _star:
        if 'style' in t.attrs and t.attrs['style'] == 'color:grey;':
            _num = digitize_star(t.string[1:])
    _star = _num
    print(_star, ' ', _word)
    # _div = soup.div.div.div
for i in range (6):
    line = f.readline()
    process_line(line)
f.close()

此時,文件已經可以輸出星級加單詞的形式列表。

|| [python 1.py]
|| 0   24-7
|| 0   911
|| 0   999
|| 2   A
|| 5   a
|| 0   a-
|| [Finished in 0 seconds]

現在讓我們加入序號,詞性和詞義。

格式的不統一讓我浪費了很多時間,可見統一的格式對數據庫是多么重要。很多事情就是因為某個單詞,沒有一項,或者多出了某個項,就不停的一直出bug。要特意寫一個條件的判斷,這個格式是否統一,才能夠解決這個問題。

還有對于bs4的應用,基礎功還是不夠扎實。尤其對于標簽里面沒有標簽的純文本如何提取。還有對于bs4特定對象的類型的組成,很多都是可迭代的文本。以及對于contents對象的使用。都有許多要改進的。

在使用的過程中,vim的asyncrun輸出的quickfix窗口顯示中文不正常,于是又改回了以前的非同步的感嘆號模式,中文顯示正常。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,314評論 25 708
  • 曾經看到一篇文章說,因為一個人愛上一座城市。雖然之前和那座城市是那么的不相干,卻在猛然中,因為某個人因為某段情因為...
    知易行難789閱讀 418評論 0 0
  • 2017年11月21日:今天是星期二,通過檢查楊峰瑞的作業。發現他的數字寫的不夠標準,還有待加強沒有以...
    航航2閱讀 306評論 0 1
  • 7月份上了2天的急救課,學到了很多實用的急救知識?,F在把整理如下 1溺水急救 重點:(不控水)90%的溺水都是干性...
    甜杏仁閱讀 203評論 0 0
  • 作者:全冠晶食用菌調理\潘映航 今天我起床的時候還是很頭疼,估計發燒還沒退。頭還是暈暈的,小女兒這幾天也是,咳嗽感...
    短視頻制作啟航閱讀 162評論 0 1