1. 程式人生 > >Python學習12_python3.4.3實現txt文字指定字元提取

Python學習12_python3.4.3實現txt文字指定字元提取

TXT文件中提取指定文字

在每天上班的路上,都會在地鐵上看看高曉鬆的《魚羊野史》。很有意思的一本書,口頭語言記錄成冊,來自《曉鬆奇談》。每天都會按著日期看,今天是哪一天就翻到哪一天,看看歷史上的今天發生了什麼事,大千世界,天文地理,古今中外,體育娛樂,歷史趣聞,明星軼事,無所不包,無所不有。總有一款你喜歡的。內容斑雜卻生動有趣,今天批評歷史罪人,痛罵漢奸走狗,明日歌頌名族英雄,讚美時代偉人,好不趣味連連。書中涉及到很多電影和書籍。發現都是用書名號“《》”包含起來的,於是心血來潮,試了試用新學的python將所有電影和書籍名提取出來。

1.提取文字思路

step 1: 首先讀取檔案 
step 2: 讀取出的str轉換為list 
step 3: 查詢字元“《”,當查到時,在當前索引號index後30個字元範圍內查詢“》”,並將這段字元用list的append()方法新增進一個新的list,插入“》”後插入換行符號”\n“ 
step 4: 新生成的的list轉換為str 
step 5: 生成新文件 

2.demo

#!/bin/python3

TXTtemp = open("fishandsheephistory.txt","r+")
txtbuffer=TXTtemp.read()
#i=0
oldlist=['']
newlist=['']
#for txtchar in txtbuffer:
#   oldlist.append(txtchar)
#   i=i+1
oldlist=list(txtbuffer)
for index in range(len(txtbuffer)):
    if oldlist[index]=="《":
        for j in range(30):
            if oldlist[index+j]=="》":
                newlist.append("》")
                newlist.append("\n")
                j=0
                break
            newlist.append(oldlist[index+j])
print(newlist)
strlist="".join(newlist)
txtnew=open("newtxt.txt","w")
txtnew.write(strlist)
txtnew.close()
TXTtemp.close()

3.結果與改進思路

這裡寫圖片描述 
簡單的一段小demo,涉及Python3檔案讀寫,open(),write()方法的使用,list與str的轉換。不過主要思維邏輯還是採用C的陣列操作思想,理想的用法應該是匯入re模組,採用正則表示式才是最優的,奈何自己正則沒學好,以後會嘗試改進。而且提取出來會存在很多重複,下一步就要去重。