簡體   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