我运行代码:
from subprocess import Popen, PIPE
p1 = Popen(['ip', 'addr'], stdout=PIPE)
p2 = Popen(['grep', 'enp'], stdin=p1.stdout, stdout=PIPE)
p1.stdout.close()
output=p2.communicate()[0]
print(output)
我得到了输出:
b'7: enp0s20f0u1c4i2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000\n inet 172.20.10.2/28 brd 172.20.10.15 scope global dynamic enp0s20f0u1c4i2\n'
如何从此输出的字符串中提取字符 enp0s20f0u1c4i2 ?
答案 0 :(得分:1)
如果您确定字符串output
始终具有相同的格式,则可以使用拆分功能拆分:
,取第一个元素然后清理删除空格的字符串和\n
。类似地,您可以按空格拆分并获取拆分的最后一个元素(看起来您要查找的字符串会出现两次?)
所以output.split(':')[1].strip()
或output.split(' ')[-1].strip()
。