python提取英文单词 每行显示一个_使用python对文件中的单词进行提取
由于需要使用一個純單詞組成的文件,在網上下載到了一個存放單詞的文件,但是里面有中文的解釋,那就需要做一下提取了。
文本的形式如下:
所見即所得,這個文本是有規律的,每個單詞為一行,緊接著下一行便是單詞的解釋,有了這種規律我們就很好處理了。
首先我們來將文件的數據讀取出來:
#coding:utf-8
file_object = open('words.txt')
try:
lines = file_object.readlines()
finally:
file_object.close( )
for line in lines:
print line 代碼執行的結果為:
顯然,這不是我們想要的結果,因為這里面有太多的空行了,現在最主要的就是要處理掉這些妨礙我們的空行,對于中文的亂碼呢,我們是不需要中文的解釋的,所以它是無妨礙的,如果想看得舒服些,那么我們就轉碼一下就好了。現在最主要的就是要知道為什么會出現這么多的空行,因為我們的文件是已將看過了,顯然是這些空行的出現是有點“匪夷所思”的,這也是由于python讀文件的機制導致的,下面我們修改下代碼,來看看原因:
#coding:utf-8
file_object = open('words.txt')
try:
lines = file_object.readlines()
finally:
file_object.close( )
print lines 在這里,我們直接輸出lines,得到如下的結果:
我們隨意拿出這句'runlet\n', 'n.\xcd\xb0,\xd0\xa1\xba\xd3\n', '\n', 'runnel\n', 'n.\xd0\xa1\xba\xd3,\xcf\xb8\xc1\xf7\n', '\n',從中可以看出,對于每行的文件,在讀取的時候,換行符“\n”也是會被讀取在單詞和對應的解釋的后面的,所以這也就是為什么會有那么多空行的原因了,這顯然不是我們想要看見的,下面我們處理一下,讓這些多余的空行失去效果:
#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'), #逗號得帶著,因為文件自身帶了換行,可以代替pirnt的換行 程序執行后,得到如下的結果:
好了,這下就是我們想看到的東西了,那么,現在我們可以將這些輸出寫入 到新的文件里了,然后就可以得到我們想要的單詞文本了。
#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: #只有奇數行為單詞
myfile.write(word) 運行程序便可以得到新的單詞文件了,最終提取了45000多個單詞,文件如下所示:
很顯然,滿足我們最終想要實現的要求,那么可以收工了。
最后附上兩個文件的鏈接:http://pan.baidu.com/s/1cMvmbG。
總結
以上是生活随笔為你收集整理的python提取英文单词 每行显示一个_使用python对文件中的单词进行提取的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python自动化框架pytest pd
- 下一篇: mysql 线性表_数据结构之线性表