溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用python對(duì)文件中的單詞進(jìn)行提取的方法示例

發(fā)布時(shí)間:2020-09-22 13:57:45 來源:腳本之家 閱讀:197 作者:陌上行走 欄目:開發(fā)技術(shù)

由于需要使用一個(gè)純單詞組成的文件,在網(wǎng)上下載到了一個(gè)存放單詞的文件,但是里面有中文的解釋,那就需要做一下提取了。

文本的形式如下:

使用python對(duì)文件中的單詞進(jìn)行提取的方法示例

所見即所得,這個(gè)文本是有規(guī)律的,每個(gè)單詞為一行,緊接著下一行便是單詞的解釋,有了這種規(guī)律我們就很好處理了。

首先我們來將文件的數(shù)據(jù)讀取出來:

#coding:utf-8
file_object = open('words.txt')
try:
   lines = file_object.readlines()
finally:
   file_object.close( )
for line in lines:
  print line

代碼執(zhí)行的結(jié)果為:

使用python對(duì)文件中的單詞進(jìn)行提取的方法示例         

顯然,這不是我們想要的結(jié)果,因?yàn)檫@里面有太多的空行了,現(xiàn)在最主要的就是要處理掉這些妨礙我們的空行,對(duì)于中文的亂碼呢,我們是不需要中文的解釋的,所以它是無妨礙的,如果想看得舒服些,那么我們就轉(zhuǎn)碼一下就好了。現(xiàn)在最主要的就是要知道為什么會(huì)出現(xiàn)這么多的空行,因?yàn)槲覀兊奈募且褜⒖催^了,顯然是這些空行的出現(xiàn)是有點(diǎn)“匪夷所思”的,這也是由于python讀文件的機(jī)制導(dǎo)致的,下面我們修改下代碼,來看看原因:

#coding:utf-8 
file_object = open('words.txt')
try:
   lines = file_object.readlines()
finally:
   file_object.close( ) 
print lines

在這里,我們直接輸出lines,得到如下的結(jié)果:

使用python對(duì)文件中的單詞進(jìn)行提取的方法示例       

我們隨意拿出這句'runlet\n', 'n.\xcd\xb0,\xd0\xa1\xba\xd3\n', '\n', 'runnel\n', 'n.\xd0\xa1\xba\xd3,\xcf\xb8\xc1\xf7\n', '\n',從中可以看出,對(duì)于每行的文件,在讀取的時(shí)候,換行符“\n”也是會(huì)被讀取在單詞和對(duì)應(yīng)的解釋的后面的,所以這也就是為什么會(huì)有那么多空行的原因了,這顯然不是我們想要看見的,下面我們處理一下,讓這些多余的空行失去效果:

#coding:utf-8 
file_object = open('words.txt')
try:
   lines = file_object.readlines()
finally:
   file_object.close( )
 
for line in lines:
  if line!='\n':
    print line.decode('gb2312','ignore'),  #逗號(hào)得帶著,因?yàn)槲募陨韼Я藫Q行,可以代替pirnt的換行

程序執(zhí)行后,得到如下的結(jié)果:

使用python對(duì)文件中的單詞進(jìn)行提取的方法示例

好了,這下就是我們想看到的東西了,那么,現(xiàn)在我們可以將這些輸出寫入 到新的文件里了,然后就可以得到我們想要的單詞文本了。

#coding:utf-8 
file_object = open('words.txt')
try:
   lines = file_object.readlines()
finally:
   file_object.close( )
 
myfile=open('newfile.txt','w')
num=0
for word in lines:
  if word!='\n':
    num+=1
    if num%2:  #只有奇數(shù)行為單詞
      myfile.write(word)

運(yùn)行程序便可以得到新的單詞文件了,最終提取了45000多個(gè)單詞,文件如下所示:

使用python對(duì)文件中的單詞進(jìn)行提取的方法示例

很顯然,滿足我們最終想要實(shí)現(xiàn)的要求,那么可以收工了。

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI