0
exit(0)
がPythonインタプリタに通知してシステムに0を返すという印象を受けました。例えば、サブプロセス呼び出しで予期しないインデントが発生しました
from subprocess import check_call
check_call('python3 -c "exit(0)"', shell=True) # returns 0
しかし
check_call(['/usr/bin/python3', '-c "exit(0)"'])
リターン1:空白が潜入しているところ
>>> check_call(['/usr/bin/python3', '-c "exit(0)"'])
File "<string>", line 1
"exit(0)"
^
IndentationError: unexpected indent
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/usr/bin/python3', '-c "exit(0)"']' returned non-zero exit status 1
は、私が言うことができない何が起こっていますか。?
'-c" exit(0) "'を2つの別々の引数に分割しようとしましたか? –
@OliverCharlesworth私はそれが答えだと思います。 –
各コマンドライン引数は、個別のリスト項目として渡す必要があります。 'shlex.split( 'python3 -c" exit(0) "')'を使ってシェルコマンドからドラフトリストを生成することができます。 – jfs