【发布时间】:2016-07-25 04:05:25
【问题描述】:
这是一个运行子进程的简单脚本,它从终端的ifconfig 命令输出中检索 IP。
我注意到subprocess.check_output() 总是返回一个带有\n 的值。
我希望得到一个返回值没有\n。
如何做到这一点?
$ python
>>> import subprocess
>>> subprocess.check_output("ifconfig en0 | awk '{ print $2}' | grep -E -o '([0-9]{1,3}[\.]){3}[0-9]{1,3}'", shell=True)
'129.194.246.245\n'
【问题讨论】:
-
echo添加换行符.. -
不仅如此。如果我在 bash mac OS X 上运行
subprocess.check_output("ifconfig en0 | awk '{ print $2}' | grep -E -o '([0-9]{1,3}[\.]){3}[0-9]{1,3}'", shell=True)检索我的 IP 地址,则返回行也存在 -
@Jupiter,你也可以很容易地使用 python 解析所有输出
-
用你的
ifconfig | awk | grep -o命令替换echo是一个相当大的变化,使很多答案无效。并不是说您的断言因此而更加正确。 -
@Jupiter 看来您是一名 PHP 程序员。请注意,PHP
exec明确(恕我直言)从返回的输出中删除尾随换行符。
标签: python