2017-04-17 4 views
0

J'ai plusieurs fichiers vidéo cassés d'une même vidéo que je dois les réunir comme une vidéo à nouveau, mais quand j'ai essayé cetteOuverture d'un fichier vidéo à partir du lecteur local tampon et écrire dans un nouveau fichier

import os 
path = 'C:/temp/test' 
files = os.listdir(path) 
for file in files: 
    mainFile = open('C:/temp/main.mp4','ab') 
    with open(path+'/'+file,'rb') as read: 
     print (read) 
     mainFile.write(read) 
mainFile.close() 

Il a jeté une erreur disant

TypeError: must be string or buffer, not file 

Donc je ne sais pas comment faire un tampon de fichier vidéo. J'ai essayé de googler et j'ai trouvé quelque chose appelé ffmpeg mais c'est une application tierce. Tout ce dont j'ai besoin est tampon d'un fichier.

Répondre

1

Notez que open() renvoie un objet file plutôt que le contenu du fichier. L'erreur se produit car un objet file est transmis dans write().

Vous pouvez appeler la méthode read() d'un objet file pour lire et retourner le contenu du fichier.

Essayez

import os 
path = 'C:/temp/test' 
files = os.listdir(path) 
for file in files: 
    mainFile = open('C:/temp/main.mp4','ab') 
    with open(path+'/'+file,'rb') as f: 
     mainFile.write(f.read()) 
mainFile.close()