2015-05-01 513 views
2

我寫了一個python腳本,使mpv的使用更容易(cim是標題)。啓動MPV的Python腳本

這裏的腳本:

from sh import mpv 
cim=input("Cím: ") 
a=int(input("with start(1) | without start (2) ")) 
b=int(input("with sub (1) | without sub(2) ")) 
if a == 1: 
    #w/ start 
    c=input("xx:yy:zz : ") 
    if b == 1: 
     #w/ sub 
     sh.mpv(cim,"--sub-file=",d,"start=",c) 


    elif b == 2: 
     #w/ sub 
     sh.mpv(cim,"start=",c) 

elif a == 2: 
    #nincs start 
    if b == 1: 
     #w/ sub 
     d=input("sub: ") 
     sh.mpv(cim,"--sub-file=",d) 

    if b == 2: 
     sh.mpv(cim) 

當我嘗試運行它:

RAN: 
'/usr/bin/mpv Red Museum.avi --sub-file= eng.srt' 

STDOUT: 
Error parsing option sub-file (option requires parameter) 
Setting commandline option --sub-file= failed. 

回答

1

的問題似乎是--sub-file=eng.srt之間的額外空間。您可以通過刪除=來修復它,以便mpv預計它們被一個空格分隔。即與

sh.mpv(cim,"--sub-file", d) 

更換線

sh.mpv(cim,"--sub-file=",d) 

如果不起作用使用字符串連接,你可以擺脫多餘的空間:

sh.mpv(cim,"--sub-file=" + d) 
+1

差不多所有的命令行解析器都以相同的方式處理'='和空白,所以使用單獨的參數確實是更清晰。實際上,單獨的參數更有可能起作用,因爲這是在C代碼中獲得參數而不涉及字符串操作的簡單方法(特別是如果不使用getopt等) – ThiefMaster

+0

是的,我有一個快速嘗試,它似乎工作所以我會交換修復的順序。 – dshepherd

+0

是的,它的工作原理,感謝您的答案! – Pentagon98