Python将行转换为列表
我用ifconfig命令配合awk来获取系统的IP地址。
$ ifconfig | grep -E 'inet.[0-9]' | awk '{ print $2}'
127.0.0.1
192.168.8.2
怎么用Python把输出转换成一个列表呢?
6 个回答
1
在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续运行。
比如说,你可能想要在用户输入一个数字后,程序才开始计算。这样做可以避免程序在没有必要的情况下运行,节省资源。
在代码中,我们通常会使用“条件语句”来实现这个功能。条件语句就像是一个检查点,程序会在这里停下来,看看条件是否成立。如果成立,程序就会继续执行;如果不成立,程序可能会选择做其他事情,或者直接停止。
总之,条件语句帮助我们控制程序的执行流程,让它更加智能和高效。
import subprocess
lines = subprocess.check_output(["ifconfig | grep -E 'inet.[0-9]' | awk '{ print $2
}'"]).split('\n')
3
你可以不必去调用一堆命令来获取IP地址,其实在Python里就能搞定。如果你只需要非回环的IP地址,可以用下面的代码:
>>> socket.gethostbyname_ex(socket.gethostname())
('furby.home', [], ['192.168.1.5'])
>>> socket.gethostbyname_ex(socket.gethostname())[2][0]
'192.168.1.5'
如果你想获取回环地址,可以使用这段代码:
>>> socket.gethostbyname_ex('localhost')
('localhost', [], ['127.0.0.1'])
还有一个叫做 netifaces 的模块,它可以一次性完成这些操作,简单方便。
6
在编程中,有时候我们会遇到一些问题,尤其是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能会在使用某个功能时,发现它的表现和预期不一样,这时候就需要去查找原因。
通常,我们可以通过查看文档、搜索网上的资料或者向其他人请教来找到答案。很多时候,社区里的其他人也遇到过类似的问题,他们可能已经分享了解决方案或者经验,这对我们来说是很有帮助的。
总之,遇到问题时,不要慌张,先冷静下来,尝试去理解问题的根源,然后寻找解决办法。这样一步一步来,就能更好地掌握编程的技巧。
import sys
list_of_lines = [line.strip() for line in sys.stdin]