1. 程式人生 > >使用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列表的字典進行排序

pytho lam 數據 image .com strong true alt -s 數據顯示為: rows=[{‘日期‘: ‘2018-09-04‘, ‘測試1‘: ‘50.00 %‘, ‘測試2‘: ‘100.00%‘}, {‘日期‘: ‘2018-09-05‘, ‘

PythonMySQL讀取的資料進行json化

對MySQL中讀取的資料進行json化 資料格式: ((cluster1,db1,tb1), (cluster1,db1,tb2), (cluster1,db1,tb3), (cluster1,db2,tb3), (cluster2,db3,tb5), (cluster3,db4

在Arcgis基於Python地圖分級別進行四色填充

四色填充是數學領域比較有名的定理,大概意思是說對於任意無飛地的多邊形區域,總能選取四種顏色對每個多邊形進行填充,保證相鄰的多邊形具有不同的顏色。在地圖製圖中,該定理被用於地圖著色,保證只採用四種顏色而使得每個省/市/縣與相鄰區域具有不同的顏色。 一、專案需

python統計檔案各個單詞出現的次數

import string d = {} def choice(str): s = str.lower() #全部轉化為小寫 for c in range(97,123): #ASC

python txt每行內容進行批量替換

f = open('./val.txt') lines = f.readlines() #整行讀取 f.close() for line in lines:     rs = line.rstrip('\n') #去除原來每行後面的換行符,但有可能是\r或\r\n     newname=rs.replace

ant檔案和目錄進行復制和刪除

4.5 Copy Task:對檔案和目錄進行復制 Copy 任務把一個或多個檔案複製到指定的目錄下。但要注意的是,如果目標目錄下具有同名的檔案,那麼只有當原始檔相對於目標檔案更新時,Ant工具才會複製這個檔案。在Copy任務中可以使用FileSet型別來定義檔案集合。 4.5.1 Copy Task的屬性及

python基礎19 -------面向象終結篇(介紹python各種內置命令)

.com 介紹 類和對象 python false 指定 事物 width images 一、isinstance()和issubclass()命令   1、isinstance(對象,類型)     用來判定該對象是不是此類型或者說是該對象是不是此類的對象,返回結果為Tr

輸入的單詞進行排序

printf ret main ++ 技術分享 image pre es2017 str 代碼如下: #include<stdio.h> #include<string.h> int main() { int i,j; char

讀寫文件、文件方法、python2的亂碼問題、pythonpasswd文件進行排序

__main__ .com 哈哈 == nco star 9.png mar ges 讀寫文件 if __name__==‘__main__‘: filename=input(‘請輸入保存的文件:‘) fdfile=open(filename,‘w+‘)

Python字符串進行MD5加密處理

python color hashlib rip Coding lib reload md5加密 進行 import hashlibimport sysreload(sys)sys.setdefaultencoding(‘utf-8‘)m = hashlib.md5()m.

Python-Pcap文件進行處理,獲取指定TCP流

serve cap dscp 解析 地址 沒有 ont wikipedia 校驗和 通過對TCP/IP協議的學習,本人寫了一個可以實現對PCAP文件中的IPV4下的TCP流提取,以及提取指定的TCP流,鑒於為了學習,沒有采用第三方包解析pcap,而是對byt

Python 同一檔案,有unittest不執行“if __name__ == '__main__”,不生成HTMLTestRunner測試報告的解決方案

1、問題:Python中同一個.py檔案中同時用unittest框架和HtmlReport框架後,HtmlReport不被執行。 2、為什麼?其實不是HtmlReport不被執行,也不是HtmlReport不生成測試報告,是因為if __name__ == '__main__'中的程式碼根本沒執

python檔案讀取資料,同時去除掉空格和換行

從檔案中讀取資料,同時去除掉空格和換行,程式碼如下 import numpy as np def sort(path): w = open(path,'r') l = w.readlines() col=[] for k in l: k = k.strip('\n')

Hadoop 統計檔案單詞出現的次數

pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://

統計檔案單詞的個數

include”stdafx.h” include include include define Inti_word 0 define In_word 1 define Out_word 2 define End_word 3 int Count_word(c

python-檔案的操作

最近在通過小甲魚的視訊學習python相關的知識,以下是對學習過程中的一些總結 python中檔案的基本操作 開啟檔案:open open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None

python判斷檔案有否重複行,逐行讀檔案檢測另一檔案是否存在所讀內容

#!/bin/env python # coding:utf-8 #程式功能是為了完成判斷檔案中是否有重複句子 #並將重複句子打印出來 res_list = [] f = open('./downloadmd5.txt','r') res_dup = [] index = 0 file_d

CAD怎麼進行提取屬性資料

在CAD繪圖中,我們都是使用的CAD編輯器來進行繪製三維,一張圖紙中有許多的資料進行組合而來的,然後在繪製完CAD圖紙走,我們還需要對CAD圖紙中的資料進行檢視,但是CAD中怎麼進行提取屬性資料了,具體要怎麼來操作,輸入在網上也有一定的操作方法,但是每個人的方法都有不同的,那下面小編就來教教大傢俱體操作技巧。

python列表的元素去重並保持原順序

python對列表中的元素去重並保持原順序 對列表去重操作最快捷方便的就是把列表轉成元組,但是元組是無序的,所以轉成元組的話,原來的資料順序會發生變化,所以我們可以用sort()中的key欄位進行設定。 #隨便建立一個有重複資料的列表 lt1 = [0,1,2,3,4,4,5,5,6