2015-12-18 40 views
0

我有一個shell命令我需要發送一個多維數組作爲參數。python 3如何發送multidimentional陣列數據到一個subprocess.call()

subprocess.call(['rndc', 'addzone', domain, 'in', 'external', '"{type master; auto-dnssec maintain; inline-signing yes; key-directory \"/home/ex-mailer-domains/domain.com/\"; file \"/home/ex-mailer-domains/domain.com/domain.com.external\"; update-policy { grant ddns-key zonesub ANY; };};"' 

subprocess.call(['rndc', 'loadkeys', domain]) 

我收到的錯誤:在shell

[\[email protected]:/usr/local/etc/namedb] # python3.4 makedomain3.py mylabel domain.com 108.61.169.203 255.255.254.0 2001:19f0:5800:8561:5400:00ff:fe07:cae5 1 
    File "makecustdomain3.py", line 249 
    subprocess.call(['rndc', 'loadkeys', domain]) 
      ^
SyntaxError: invalid syntax 

實際的命令:

rndc addzone domain.com in external '{type master; auto-dnssec maintain; inline-signing yes; key-directory "/home/ex-mailer-domains/domain.com/"; file "/home/ex-mailer-domains/nyctelecomm2.com/domain.com.external"; update-policy { grant ddns-key zonesub ANY; };};' 
rndc loadkeys domain.com 

你如何正確多維數組的數據作爲參數傳遞給subprocess.call( )在python3?

+0

「多維數組」是不相關的在這裏從你的例子,它只是一個字符串 – Eric

回答

2

我相信你沒有關閉以前的電話。在你的帖子,第一次調用與「」結束;這些封閉結構字符串,但你仍然需要一個右括號和右括號

分析器檢測這個在下面標記的結束;語法,它應該看到右括號或另一個逗號

+0

我是這樣一個tard – doeJ

+0

歡迎來到俱樂部;我們大多數人很長這是我教給我的學生的第一件事情:當錯誤出現在一行的開頭時,還要看上一行的結尾。 – Prune

相關問題