導航:首頁 > 編程語言 > python文字處理

python文字處理

發布時間:2022-07-31 15:36:00

python 文本文件處理

  1. 分隔日誌文件存為小文件

  2. #coding:utf-8

  3. #file: FileSplit.py

  4. import os,os.path,time

  5. def FileSplit(sourceFile, targetFolder):

  6. sFile = open(sourceFile, 'r')

  7. number = 100000 #每個小文件中保存100000條數據

  8. dataLine = sFile.readline()

  9. tempData = [] #緩存列表

  10. fileNum = 1

  11. if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建

  12. os.mkdir(targetFolder)

  13. while dataLine: #有數據

  14. for row in range(number):

  15. tempData.append(dataLine) #將一行數據添加到列表中

  16. dataLine = sFile.readline()

  17. if not dataLine :

  18. break

  19. tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + str(fileNum) + ".txt")

  20. tFile = open(tFilename, 'a+') #創建小文件

  21. tFile.writelines(tempData) #將列表保存到文件中

  22. tFile.close()

  23. tempData = [] #清空緩存列表

  24. print(tFilename + " 創建於: " + str(time.ctime()))

  25. fileNum += 1 #文件編號

  26. sFile.close()

  27. if __name__ == "__main__" :

  28. FileSplit("access.log","access")


分類匯總小文件:

#coding:utf-8

#file: Map.py


import os,os.path,re


def Map(sourceFile, targetFolder):

sFile = open(sourceFile, 'r')

dataLine = sFile.readline()

tempData = {} #緩存列表

if not os.path.isdir(targetFolder): #如果目標目錄不存在,則創建

os.mkdir(targetFolder)

while dataLine: #有數據

p_re = re.compile(r'(GET|POST)s(.*?)sHTTP/1.[01]',re.IGNORECASE) #用正則表達式解析數據

match = p_re.findall(dataLine)

if match:

visitUrl = match[0][1]

if visitUrl in tempData:

tempData[visitUrl] += 1

else:

tempData[visitUrl] = 1

dataLine = sFile.readline() #讀入下一行數據

sFile.close()


tList = []

for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):

tList.append(key + " " + str(value) + ' ')


tFilename = os.path.join(targetFolder,os.path.split(sourceFile)[1] + "_map.txt")

tFile = open(tFilename, 'a+') #創建小文件

tFile.writelines(tList) #將列表保存到文件中

tFile.close()


if __name__ == "__main__" :

Map("access\access.log1.txt","access")

Map("access\access.log2.txt","access")

Map("access\access.log3.txt","access")

3. 再次將多個文件分類匯總為一個文件。

#coding:utf-8

#file: Rece.py


import os,os.path,re


def Rece(sourceFolder, targetFile):

tempData = {} #緩存列表

p_re = re.compile(r'(.*?)(d{1,}$)',re.IGNORECASE) #用正則表達式解析數據

for root,dirs,files in os.walk(sourceFolder):

for fil in files:

if fil.endswith('_map.txt'): #是rece文件

sFile = open(os.path.abspath(os.path.join(root,fil)), 'r')

dataLine = sFile.readline()

while dataLine: #有數據

subdata = p_re.findall(dataLine) #用空格分割數據

#print(subdata[0][0]," ",subdata[0][1])

if subdata[0][0] in tempData:

tempData[subdata[0][0]] += int(subdata[0][1])

else:

tempData[subdata[0][0]] = int(subdata[0][1])

dataLine = sFile.readline() #讀入下一行數據

sFile.close()


tList = []

for key,value in sorted(tempData.items(),key = lambda k:k[1],reverse = True):

tList.append(key + " " + str(value) + ' ')


tFilename = os.path.join(sourceFolder,targetFile + "_rece.txt")

tFile = open(tFilename, 'a+') #創建小文件

tFile.writelines(tList) #將列表保存到文件中

tFile.close()


if __name__ == "__main__" :

Rece("access","access")

㈡ python具體在文本處理上怎麼用

在諸多軟體壓縮包中或是項目壓縮包中都會存在一個readme.txt文件,其中的內容無非是對軟體的簡單介紹和注意事項。但是在該文本文件中,內容沒有分段分行,是非常冗雜地混在一起。當然處理手段多種多樣,而我正好嘗試利用Python解決這個問題。另外,這些內容或許對將來爬蟲爬下的內容進行處理也是有些幫助的,只不過面對的混亂和處理需求不同而已。
這里的思路很簡單,打開一個文本文檔,對其中具有兩個及兩個以上的空格進行處理,即產生換行,另外出現很多的『=』和『>>>』也進行處理。這里我嘗試處理的是easyGUI文件夾中的read.txt,該文件我復制在了D盤的根目錄下。具體的實現代碼如下:
def save_file(lister):#將傳入的列表保存在新建文件中 new_file = open('new_file','w')#創建並打開文件,文件可寫 new_file.writelines(lister)#將列表lister中的內容逐行列印 new_file.close()#關閉文件,且緩存區中的內容保存至該文件中def split_file(filename):#分割原始文件 f = open(filename)#打開該原始文件,默認該文件不可修改 lister = []#初始化一個空列表 for each_line in f: if each_line[:6] != '======' and each_line[:3] != '>>>': #當連續出現六個『=』或連續三個『>』時,列印一個換行符,實際體現在else中 each_line.split(' ',1)#當出現兩個空格時,分割一次,並在下一行代碼中以一行的形式保存在列表中 lister.append(each_line) else:
lister.append('\n')

save_file(lister)
f.close()

split_file('D:\\README.txt')
代碼給出了詳細的注釋。其中得到的新的名為「new_file」的文件保存在默認的Python項目的目錄下。當然,可以通過chdir()更改工作目錄,使得文件創建在自己指定的位置。

㈢ python 處理文本,格式化文本~

#coding=utf-8
records=[]
record={}
withopen("data.txt")asf:
whileTrue:
line=f.readline()
ifnotline:
iflen(record)!=0:records.append(record)
break
field=line[line.find(":")+1:].strip()
ifline.startswith("ScopeId"):
iflen(record)!=0:records.append(record)
record={}
record["ScopeId"]=field
elifline.startswith("Name"):
record["Name"]=field
elifline.startswith("Free"):
record["Free"]=field
elifline.startswith("InUse"):
record["InUse"]=field
elifline.startswith("PercentageInUse"):
record["PercentageInUse"]=field
#設置預設項
forrinrecords:
r.setdefault("InUse",0)
r.setdefault("PercentageInUse",0)
r.setdefault("Name","")
r.setdefault("Free",0)

printrecords

㈣ python 文本處理(請看粗體字)為什麼是f1【

f1=opent.readline() 是讀取一行,f1是讀到的當前行的數據,也就是一個字元串。

㈤ python對文本文件的讀有哪些方法,寫有哪些方法

1 文件讀取全文本操作
在一定場景下我們需要把文本全部內容讀取出來,進行處理。python提供三種函數讀取文件,分別是read readline readlines,
read():讀取文件的全部內容,加上參數可以指定讀取的字元。
readline():讀取文件的一行。
readlines():讀取文件的所有行到內存中。
不同場景下我們可以選擇不同函數對文件進行讀取。
1.1 方法一
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")
txt=file.read()
# 全文本的處理
file.close()
使用read函數將文件中的內容全部讀取,放在字元串變數txt中。這樣操作適合於文本較小,處理簡單的情況,當文件較大時,這種方式處理時不合適的。一次性讀取較大的文件到內存中,會耗費較多的時間和資源。這時候分批處理效果更好。
1.2 方法二
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")
txt= file.read(4)
# 文本的處理while txt != ""txt= file.read(4)
# 批量文本處理
file.close()
這種方法適合於分批處理文本信息,每次批量讀入,批量處理,不會對內存造成較大的壓力。
1.3 方法三
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")for line infile.readlines():
# 處理每一行數據
file.close()
這種處理方式適合處理以行為分割特點的文本,並且文本較小,因為這種處理方式需要一次性把文件所有內容讀取到內存中。
1.4 方法四
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r") # 這里的file時文件句柄for line infile:
# 處理每一行數據
file.close()
這種方式和方法三中的區別是分行讀入,逐行處理,不會一次性把文件所有內容都讀入到內存中,對一些大文件的處理是很有效的。
2 文件寫入文本操作
文件寫入有兩種寫入函數和一種輔助支持。
write():向文件中寫入一個字元或者位元組流
writelines():將一個元素全為字元串的列表寫入到文件中 需要注意的是,writelines寫入列表元素的時候會把列表元素的內容拼接到一起寫入,不會有換行和空格 。
seek(): 輔助寫入函數offset偏移量參數代表含義如下
0 - 文件開頭
1 - 當前位置
2 - 文件結尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 讀取寫入的數據,這時候發現是沒有任何內容的
file.close()
我們增加一行代碼就可以讀取到寫入的文件內容,利用seek()函數調整寫操作指針的位置,可以實現寫操作之後的正常讀取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 調整寫的指針到文件的開始位置for line infile:
# 讀取寫入的數據,這時候會讀出一行寫入的數據。
file.close()

㈥ python文字處理有哪些方法和庫可以用

結巴是分詞,用來把文字結構化成向量而已
要做什麼分析還得看任務,你已經有向量以後 是做分類?還是聚類?還是相似度? 推薦一個Python庫 sklearn 這里包含很多演算法

㈦ 學python的10個有效方法有哪些

學習python主要是自學或者報班學習的方式,但不建議自學。

如果想通過學習python改行,那就需要明確一下自己的方向。因為python編程有很多方向,有網路爬蟲、數據分析、Web開發、測試開發、運維開發、機器學習、人工智慧、量化交易等等,各個方向都有特定的技能要求。

想學的話,當然是可以學習的。python是一門語法優美的編程語言,不僅可以作為小工具使用提升我們日常工作效率,也可以單獨作為一項高新就業技能!

python可以做的事情:

互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。

想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。

祝你學有所成,望採納。

㈧ Python文本處理工具都有哪些

1、 NLTK — Natural Language Toolkit


搞自然語言處理的同學應該沒有人不知道NLTK吧,這兒也就不多說了。不過引薦兩本書籍給剛剛觸摸NLTK或許需求具體了解NLTK的同學: 一個是官方的《Natural Language Processing with Python》,以介紹NLTK里的功用用法為主,一起附帶一些Python常識,一起國內陳濤同學友情翻譯了一個中文版,這兒可以看到:引薦《用Python進行自然語言處理》中文翻譯-NLTK配套書;另外一本是《Python Text Processing with NLTK 2.0 Cookbook》,這本書要深入一些,會涉及到NLTK的代碼結構,一起會介紹怎麼定製自己的語料和模型等,相當不錯。


2、 Pattern


Pattern由比利時安特衛普大學CLiPS實驗室出品,客觀的說,Pattern不僅僅是一套文本處理東西,它更是一套web數據挖掘東西,囊括了數據抓取模塊(包含Google, Twitter, 維基網路的API,以及爬蟲和HTML剖析器),文本處理模塊(詞性標示,情感剖析等),機器學習模塊(VSM, 聚類,SVM)以及可視化模塊等,可以說,Pattern的這一整套邏輯也是這篇文章的組織邏輯,不過這兒我們暫時把Pattern放到文本處理部分。我個人首要使用的是它的英文處理模塊Pattern.en, 有許多很不錯的文本處理功用,包含基礎的tokenize, 詞性標示,語句切分,語法檢查,拼寫糾錯,情感剖析,句法剖析等,相當不錯。


3、 TextBlob: Simplified Text Processing


TextBlob是一個很有意思的Python文本處理東西包,它其實是根據上面兩個Python東西包NLKT和Pattern做了封裝(TextBlob stands on the giant shoulders of NLTK and pattern, and plays nicely with both),一起供給了許多文本處理功用的介面,包含詞性標示,名詞短語提取,情感剖析,文本分類,拼寫檢查等,甚至包含翻譯和語言檢測,不過這個是根據Google的API的,有調用次數約束。


4、 MBSP for Python


MBSP與Pattern同源,同出自比利時安特衛普大學CLiPS實驗室,供給了Word Tokenization, 語句切分,詞性標示,Chunking, Lemmatization,句法剖析等根本的文本處理功用,感興趣的同學可以重視。


關於 Python文本處理工具都有哪些,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。

閱讀全文

與python文字處理相關的資料

熱點內容
php開發客戶端 瀏覽:998
theisle測試服怎麼搜伺服器 瀏覽:447
廣播PDF 瀏覽:218
單片機編程300例匯編百度 瀏覽:35
騰訊雲連接不上伺服器 瀏覽:223
不能用來表示演算法的是 瀏覽:861
6軸機器人演算法 瀏覽:890
手機主題照片在哪個文件夾 瀏覽:294
安卓手機後期用什麼軟體調色 瀏覽:628
cad修改快捷鍵的命令 瀏覽:242
好錢包app怎麼登錄不了 瀏覽:859
樹莓派都用python不用c 瀏覽:757
access文件夾樹的構造 瀏覽:662
安卓多指操作怎麼設置 瀏覽:658
linux樹形目錄 瀏覽:727
平方根的簡單演算法 瀏覽:898
千牛訂單頁面信息加密取消 瀏覽:558
單片機自製紅外遙控燈 瀏覽:719
伺服器最小配置怎麼弄 瀏覽:853
ibm伺服器硬體如何升級 瀏覽:923