0

私はこれを試していますが、次のコード行でエラーが発生します:

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

エラー:

  ファイル「date.py」、12行目
    p = subprocess.Popen(r"/bin/date -s "%s" " % self.sysdate)
                                             ^
SyntaxError: 無効な構文

私も試しました:

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

まだエラーが発生しました。これに関する任意の助けをいただければ幸いです。

4

2 に答える 2

4

サブプロセスは、プログラムとその引数の文字列のリストを優先します。試す

subprocess.Popen(['/bin/date', '-s', '%s' % self.sysdate])
于 2012-08-22T21:58:51.497 に答える
0

サブプロセス Popen args を文字列のリストとして送信します。さらに、文字列を分割するときは、のようなモジュール関数を使用します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)
于 2012-08-22T22:22:09.947 に答える