【问题标题】:python 3 How do I send multidimentional array data to a subprocess.call()python 3 如何将多维数组数据发送到 subprocess.call()
【发布时间】:2015-12-18 21:11:22
【问题描述】:

我有一个 shell 命令,我需要发送一个多维数组作为参数。

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])

我收到的错误:

[\u@yoda:/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

shell 中的实际命令:

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

如何正确地将多维数组数据作为参数传递给python3中的subprocess.call()?

【问题讨论】:

  • “多维数组”在这里无关紧要。从您的示例中,它只是一个字符串。

标签: python arrays python-3.x subprocess


【解决方案1】:

我相信您未能关闭之前的通话。您的帖子中的第一个调用以 "' 结尾;它们关闭了结构字符串,但您仍然需要右括号和右括号。

解析器在以下标记的末尾检测到这一点;从语法上讲,它应该看到右括号或另一个逗号。

【讨论】:

  • 欢迎来到俱乐部;我们大多数人都是长期会员。这是我教给我的学生的第一件事:当错误出现在行首时,还要查看上一行的结尾。
猜你喜欢
  • 2023-04-06
  • 2018-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2011-02-11
  • 1970-01-01
相关资源
最近更新 更多