由于需要使用一個純單詞組成的文件,在網上下載到了一個存放單詞的文件,但是里面有中文的解釋,那就需要做一下提取了。
文本的形式如下:

所見即所得,這個文本是有規律的,每個單詞為一行,緊接著下一行便是單詞的解釋,有了這種規律我們就很好處理了。
首先我們來將文件的數據讀取出來:
#coding:utf-8file_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=0for word in lines: if word!='/n': num+=1 if num%2: #只有奇數行為單詞 myfile.write(word)
|
新聞熱點
疑難解答