tft每日頭條

 > 科技

 > python合并兩個文本文件

python合并兩個文本文件

科技 更新时间:2024-12-13 12:02:37

爬取時間2022/8/19

在上上篇示例中,大量亂序ts文件合并成mp4文件雖然示範了如何合并亂序文件,

由于os模塊合并文件有上限(650左右),對于動辄幾千ts文件的電影來說,如果不采用循環太費時間.

本文示範如何利用循環合并文件,再也不用每次手動修改合并程序.

還是以結合下載大量ts文件為例:

直接找一個視頻網站,找到爬取目标,以下代碼直接忽略拿m3u8文件鍊接的過程,直接從下載到m3u8文件開始

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)1

代碼1-25行

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)2

代碼26-52行

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)3

代碼53-77行

不斷調試後的運行結果:

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)4

最終成功合成157分鐘的視頻文件

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)5

代碼中merge合并函數合并4430個ts文件所花的時間為5秒

合并的操作在代碼第18-44行,也就是定義的marge函數下

思路:

1>>>讀取m3u8文件(因為裡面的内容都是有序的),取出做成列表

2>>>把有序的文件名列表(4429個元素)進行切片操作,

3>>>每次切出600個文件,去合并

4>>>把步驟3合并的片段mp4文件合并成一部整體的電影文件

5>>>打開最終合并的文件檢查有無錯誤

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)6

m3u8文件,内含4439個ts文件下載鍊接

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

本次下載4429個ts文件過程中遇到的問題:

最開始線程池設置的是39個線程,運行過程中,下載2000左右ts文件後就變成單程下載了.隻能停止程序運行.

經後面調試過程中,确定該網站是有限制的...隻能是另起排查文件程序....

經曆此次事件,在之後利用異步協程或者多線程下載電影;小說時(特征是文件多,亂序文件,一旦中途出錯,如網站限制響應等,後期沒法合并,重新下載耽誤時間不說,還大概率遇到同樣的問題),

>>>非常有必要在下載過程中設置檢測(将要下載的文件本地是否存在,如果存在就跳過下載,如果不存在,就下載下來),設置這個檢測代碼不耗時間,0.0幾秒程序就能運行出結果

總結:

1>對于新手來說,代碼最開始奔着要達到的目标就行了,不需要代碼排版有多好看,也不需要考慮程序運行過程中可能會遇到的錯誤

類似"先生存,再求發展",

2>達到目标後,思考程序是否夠自動化?能否再減少人的時間?奔着這個目的去完善代碼.

3>不要怕2繁瑣,精益求精,才能不斷提升,而不是成為"固化的打字機器".

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

結尾:如需要源代碼或者電影文件的可以私信,就不留阿裡網盤的分享了.

python合并兩個文本文件(4000多個亂序的ts文件合并成MP4文件)7

分辨率1920*1080

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved