Python将文件从URL添加到本地文件中的文件

时间:2019-02-13 01:49:03

标签: python-3.x io python-requests

我正在尝试合并来自互联网的两个文件,并将输出保存在我的计算机上。我有下面的代码,但没有做出尝试,我总是得到相同的结果。我得到第一个URL,仅此而已。 确切地说,我正在尝试将VideoURL和videoURL1合并为一个文件,称为output.mp4 ...

videoURL= 'http://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4'
videoURL1 = 'http://techslides.com/demos/sample-videos/small.mp4'
# print(str(embeddHTMLString).find('sources: ['))

local_filename = videoURL.split('/')[-1]
# NOTE the stream=True parameter

response = urlopen(videoURL)

response1 = urlopen(videoURL1)

with open(local_filename, 'wb') as f:
    while True:
        chunk = response.read(1024)
        if not chunk:
            break
        f.write(chunk)
with open(local_filename, 'ab+') as d:
    while True:
        chunk1 = response1.read(1024)
        if not chunk1:
            break
        d.write(chunk1)

1 个答案:

答案 0 :(得分:1)

您做错了。 @ Tempo810已经给出了这个答案的要旨,您需要单独下载文件,以后再将它们串联为一个文件

我假设您分别从网址中下载了video1.mp4video2.mp4。现在将它们组合起来,您根本就不能使用append来合并文件,因为视频文件包含格式头和元数据,并且将两个媒体文件组合为一个意味着您需要重写新的元数据和格式头,并删除旧的元数据。

相反,您可以使用库moviepy来保存自己。这是一小段代码示例,如何利用moviepy的{​​{1}}合并文件:

concatenate_videoclips()

您得到的合并文件为from moviepy.editor import VideoFileClip, concatenate_videoclips # opening the clips clip1 = VideoFileClip("video1.mp4") clip3 = VideoFileClip("video2.mp4") # lets concat them up final_clip = concatenate_videoclips([clip1,clip2]) final_clip.write_videofile("output.mp4") 。就是这样!