0

Pythonで(シェルの)逆引用符で囲まれた文字列を解決するにはどうすればよいですか?

たとえば、文字列"`cat /etc/hosts | grep hostname`"があり、そのシェルの解釈を取得したいとします。例:「0.0.0.0hostname\n」。どうやってやるの?

4

1 に答える 1

3

使用shlex.split()

>>> import shlex
>>> shlex.split('cat /etc/hosts | grep hostname')
['cat', '/etc/hosts', '|', 'grep', 'hostname']

ただし、バッククォートでコマンドの出力を探している場合は、代わりにsubprocessモジュールを使用する必要があります。

>>> import subprocess
>>> subprocess.check_output('cat /etc/hosts | grep dahn', shell=True)
'127.0.0.1\tdahnlocal.internal.int\n'

シェルに解釈させるように設定shellしたことに注意してください。True

于 2012-11-22T12:06:10.050 に答える