使用Python刪除文字檔案中的部分內容
阿新 • • 發佈:2019-01-30
為了學習英語,我把從網上下載下來的電影轉換成純MP3檔案,放到iTouch裡去了,這樣就可以直接練習聽力了,另外把下載下來的字幕也放進去,聽不懂的時候可以看,但有一個問題,網上載下來的字幕格式都如下所示:
如上,但存在兩個問題:1、每一句前面都帶有數字編號;2、帶有時間戳;
我只想要裡面的中英文文字,數字編號和時間戳都不需要。由於最近正在學習Python當然首先就想到了做個Python指令碼來把時間戳和編號刪掉。實現很簡單,基本思路就是使用正則表示式匹配,把空行、純數字行及帶有“-->”的行刪掉,然後再先回文字檔案。
完成後的程式碼如下:
過程中遇到一個問題:
1、Python中沒辦法清空一個檔案,亂看了一通,發現使用truncate()方法,傳入引數為0時可以搞定。
2、開始的時候直接使用for遍歷list中的元素,匹配到就刪除,發現需要執行多次指令碼才能刪完,且有些還始終刪不掉,最後終於搞明白了:使用for i in list:時,如果一匹配到就刪除,則此時list中的元素會改變,進入迴圈的下一輪時不出問題才怪。造孽,花了近一個小時才把這個問題搞定了。於是重新定義了一個空連結串列new_txt,使用它來儲存我要的字幕,迴圈完成後把new_txt寫回檔案。大功告成!
爽,拷到我的iTouch裡,開始學習英語了!