python: How does subprocess.check_output create it's calls? -


i'm trying read duration of video files using mediainfo. shell command works

mediainfo --inform="video;%duration/string3%" file 

and produces output like

00:00:33.600 

but when try run in python line

subprocess.check_output(['mediainfo', '--inform="video;%duration/string3%"', file]) 

the whole --inform thing ignored , full mediainfo output instead.

is there way see command constructed subprocess see what's wrong?

or can tell what's wrong?

try:

subprocess.check_output(['mediainfo', '--inform=video;%duration/string3%', file]) 

the " in python string passed on mediainfo, can't parse them , ignore option.

these kind of problems caused shell commands requiring/swallowing various special characters. quotes such " removed bash due shell magic. in contrast, python not require them magic, , replicate them way used them. why use them if wouldn't need them? (well, d'uh, because bash makes believe need them).

for example, in bash can do

$ dd of="foobar" 

and write file named foobar, swallowing quotes.

in python, if do

subprocess.check_output(["dd", 'of="barfoo"', 'if=foobar']) 

it write file named "barfoo", keeping quotes.


Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

android - Robolectric "INTERNET permission is required" -

java - Android raising EPERM (Operation not permitted) when attempting to send UDP packet after network connection -