0

如何在 python 中解析(shell)反引号字符串?

说,我有字符串"`cat /etc/hosts | grep hostname`",我想得到它的 shell 解释,例如:“0.0.0.0 主机名\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'

请注意,我设置shellTrue让 shell 为我解释它。

于 2012-11-22T12:06:10.050 回答