首页
/
每日頭條
/
科技
/
python合并兩個列表并去重
python合并兩個列表并去重
更新时间:2024-11-28 22:32:05

本文以爬取一部小說為例,因使用的是多線程爬取,所以每個小說章節都是一個txt文件,而這些文件都是亂序的,要閱讀的話我們也不可能每閱讀一章小說就去翻另一個txt文件,這時就需要合并了.

----------------------------------------

爬取時間2022/8/16

代碼如下:

python合并兩個列表并去重(大量亂序文件如何合并成有序的)1

代碼1-25行

python合并兩個列表并去重(大量亂序文件如何合并成有序的)2

代碼28-49行

python合并兩個列表并去重(大量亂序文件如何合并成有序的)3

代碼50-75行

運行結果:

python合并兩個列表并去重(大量亂序文件如何合并成有序的)4

pycharm中的結果

python合并兩個列表并去重(大量亂序文件如何合并成有序的)5

文件管理器中的結果

從結果中可以看到,程序從運行到結束,一共花了3秒鐘,

三秒内做完了從網站獲取url鍊接,再通過120個url下載了120個txt文件,合并成一個大的txt文件後,再删除之前的120個小txt文件.

----------------------------------------------

代碼10-25行>>>

從主頁面發起請求,結合bs4和正則獲取了小說每個章節的url鍊接和名字,并将順序正常的名字寫入叫1000.txt的文件. 第22行用unicodedatach處理了文本中的非正常空格(類似 )

代碼第28-39行>>>

以每個章節的url為函數參數,獲取了小說内容,并寫入txt文件,

用章節名 (例如: 第四十九回 琉璃世界白雪紅梅 脂粉香娃割腥啖) 作為xxt文件的名字. 因為原本的章節名含有空格以及非正常空格,不利于後續排序處理,就采用正則提取了 "第"和"回"中間的文字作為txt文件名.

python合并兩個列表并去重(大量亂序文件如何合并成有序的)6

不用正則處理xtxt文件名就是這個樣子

代碼第69-71行>>>

創建了線程池下載txt文件

代碼第41-55行>>>

打開名為1000.txt文件,提取裡面的正常順序的章節名,以此作為已下載的120個txt文件的合并順序.

代碼第57-61行>>>

将之前下載的120個小txt文件删除,保留合并後的大的txt文件,接下來就可以愉快地閱讀小說了

python合并兩個列表并去重(大量亂序文件如何合并成有序的)7

手機中顯示的效果

注: 将ts文件合并成MP4文件也是通用的,但需要注意的是使用os模塊單次合并ts文件數量在650個左右,不到700個.

至于用os模塊單次合并txt文件的數量限制是多少,暫時未測試.

----------------------------------------------

最後:源碼以及小說txt文件,封面原圖鍊接阿裡雲盤分享

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
Copyright 2023-2024 - www.tftnews.com All Rights Reserved