2016-07-10 1 views
0

Dies ist der Code funktioniert:ein check_output in python3 mit Mediainfo Laufen erzeugt einen Fehler, obwohl der gleiche Anruf in Terminal feine

try: 
    s = check_output(['mediainfo', '--Inform=General;%Format%', filename]) # Gets the output from mediainfo 

Wenn es läuft, bekomme ich

subprocess.CalledProcessError: Command '['mediainfo', '--Inform=General;%Format%', 'xyz']' returned non-zero exit status 1 

Beim Laufen mediainfo --Inform='Video;%Format%' s03e07.mkv in einem Terminal, bekomme ich die gewünschte Ausgabe, also, was ist hier los?

+0

Woher kommt der Dateiname? Fügen Sie das Ende des tracrback hinzu, wo Sie die Dateinamenszeichenfolge haben –

Antwort

1

Mit den ersten beiden Argumenten ist nichts falsch. Es gibt zwei gute Möglichkeiten, die Sie aus einer Datei zu lesen und Sie haben auf den Dateinamen nachfolgende Leerzeichen:

"sample.mkv\n" 

Oder Sie aktuellen Arbeitsverzeichnis ist nicht, wo die Datei, die Sie ist so müssen Sie den vollständigen Pfad gelangen oder Set cwd="path_to_filr_dir" in check_output Anruf.

+0

Also wie würde ich diesen Teil ändern müssen? s = check_output (['mediainfo', '--Inform = Allgemein;% Format%', Dateiname]) Ich habe bereits versucht, Dateiname durch "filename \ n" zu ersetzen, aber das hat nicht geholfen. – user2765654

+0

Wohin auch immer die Datei gesetzt wird, Sie cwd, 'check_output (['mediainfo', '--Inform = Allgemein;% Format%', Dateiname], cwd =" Pfad_zu_Datei ")' –

Verwandte Themen