繁体   English   中英

python:在subprocess.popen中使用引号

[英]python: Using quotes in the subprocess.popen

我正在尝试此操作,但是以下代码行出现错误:

p = subprocess.Popen(r"/bin/date -s "%s" " % self.sysdate)

错误:

File "date.py", line 12
    p = subprocess.Popen(r"/bin/date -s "%s" " % self.sysdate)
                                             ^
SyntaxError: invalid syntax

我也尝试过:

p = subprocess.Popen(r'/bin/date -s "%s" ' % self.sysdate)

仍然有一个错误。 任何帮助对此表示赞赏。

子进程更喜欢程序及其参数的字符串列表。 尝试

subprocess.Popen(['/bin/date', '-s', '%s' % self.sysdate])

您将子进程Popen args作为字符串列表发送。 而且,当您shlex.split字符串时,请使用shlex.split类的模块函数。

>>> date_str = '/bin/date -s "%s"' % '%HH:%MM'
>>> date_str
'/bin/date -s "%HH:%MM"'
>>> import shlex
>>> vals = shlex.split(date_str)
>>> vals
['/bin/date', '-s', '%HH:%MM']
>>> p = subprocess.Popen(vals)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM