【问题标题】:How do I parse and find something from command output in Python如何从 Python 的命令输出中解析和查找内容
【发布时间】:2020-07-12 00:48:38
【问题描述】:

我只想从ifconfig的命令输出中找到IP地址:

import os

ip = os.system("ifconfig eth0")

然后如何从输出中找到192.168.1.10 并将其打印到标准输出?

【问题讨论】:

标签: python python-3.x


【解决方案1】:
ip=os.system("ifconfig eth0|grep -w 'inet'|awk '{print $2}'")

此解决方案使用纯 shell 命令。 grep 搜索单词 inet 并打印该行,然后 awk 过滤第二个单词,这是 IP

【讨论】:

  • 请补充说明
  • 请不要只发布代码作为答案,还要解释您的代码的作用以及它如何解决问题的问题。带有解释的答案通常更有帮助、质量更好,并且更有可能吸引投票。
  • 对不起,我是这个论坛的新手。我希望我随后添加的解释是令人满意的。
  • 请确保将文本保留在代码块之外。我已经编辑了你的答案来解决这个问题。
【解决方案2】:

import subprocess

import re

ip=subprocess.Popen(['ifconfig', 'eth0'], stdout=subprocess.PIPE).communicate()[0]

oip=re.search(r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", str(ip))

print(oip.group())

这里正则表达式应用于 ifconfig 命令。搜索第一次出现的字符串,有 4 个数字,每个数字最长 3 位,用点分隔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 1970-01-01
    • 2011-07-19
    相关资源
    最近更新 更多