我有以下命令:轉換複雜的命令到蟒子
$ ffmpeg -i http://url/1video.mp4 2>&1 | perl -lane 'print $1 if /(\d+x\d+)/'
640x360
我想這個命令的輸出設置成Python變量。以下是我迄今爲止:
>>> from subprocess import Popen, PIPE
>>> p1 = Popen(['ffmpeg', '-i', 'http://url/1video.mp4', '2>&1'], stdout=PIPE)
>>> p2=Popen(['perl','-lane','print $1 if /(\d+x\d+)/'], stdin=p1.stdout, stdout=PIPE)
>>> dimensions = p2.communicate()[0]
''
我在做什麼錯誤在這裏,我怎麼會得到維度正確的價值?
我不知道Perl,但我敢打賭,你也可以在Python中做到這一點,而不會產生perl解釋器。對於一個解決方案,嘗試刪除'2>&1' – utdemir