python 大量亂序檔案如何合併成有序的
本文以爬取一部小說為例,因使用的是多執行緒爬取,所以每個小說章節都是一個txt檔案,而這些檔案都是亂序的,要閱讀的話我們也不可能每閱讀一章小說就去翻另一個txt檔案,這時就需要合併了.
----------------------------------------
爬取時間2022/8/16
程式碼如下:
程式碼1-25行
程式碼28-49行
程式碼50-75行
執行結果:
pycharm中的結果
檔案管理器中的結果
從結果中可以看到,程式從執行到結束,一共花了3秒鐘,
三秒內做完了從網站獲取url連結,再通過120個url下載了120個txt檔案,合併成一個大的txt檔案後,再刪除之前的120個小txt檔案.
----------------------------------------------
程式碼10-25行>>>
從主頁面發起請求,結合bs4和正則獲取了小說每個章節的url連結和名字,並將順序正常的名字寫入叫1000.txt的檔案. 第22行用unicodedatach處理了文字中的非正常空格(類似 )
程式碼第28-39行>>>
以每個章節的url為函式引數,獲取了小說內容,並寫入txt檔案,
用章節名 (例如: 第四十九回 琉璃世界白雪紅梅 脂粉香娃割腥啖) 作為xxt檔案的名字. 因為原本的章節名含有空格以及非正常空格,不利於後續排序處理,就採用正則提取了 "第"和"回"中間的文字作為txt檔名.
不用正則處理xtxt檔名就是這個樣子
程式碼第69-71行>>>
建立了執行緒池下載txt檔案
程式碼第41-55行>>>
開啟名為1000.txt檔案,提取裡面的正常順序的章節名,以此作為已下載的120個txt檔案的合併順序.
程式碼第57-61行>>>
將之前下載的120個小txt檔案刪除,保留合併後的大的txt檔案,接下來就可以愉快地閱讀小說了
手機中顯示的效果
注: 將ts檔案合併成MP4檔案也是通用的,但需要注意的是使用os模組單次合併ts檔案數量在650個左右,不到700個.
至於用os模組單次合併txt檔案的數量限制是多少,暫時未測試.
----------------------------------------------
最後:原始碼以及小說txt檔案,封面原圖連結阿里雲盤分享