2024-10-02 18:20:37 发布
网友
这段代码让我得到了BSD网络接口的虚线四边形。 我想知道如何使用subprocess模块。在
ifcfg_lines = os.popen("/sbin/ifconfig fxp0").readlines() x = string.split(ifcfg_lines[3])[1]
似乎我不能以完全相同的方式使用子进程。 我不认为我想要的是shell=True或PIPE。 如何使输出可索引?在
谢谢。在
from subprocess import Popen, PIPE ifcfg_lines = Popen("/sbin/ifconfig fxp0",shell=True,stdout=PIPE).stdout.readlines() x = string.split(ifcfg_lines[3])[1]
为了更优雅一点,隐藏细节:
如果您要使用子流程来实现这一点,那么优雅就有点受限,因为您实际上是在做类似于屏幕抓取的操作,除了这里是脚本抓取。如果您想要一个真正通用的解决方案,请使用socket库,即让Python处理可移植性。在
通常,当你看到一点代码,你希望有一个更好的更干净的方法来做它,这意味着你需要质疑你的假设,并改变算法或解决方案的架构。在
为什么不使用类似于:
import socket ipadr = socket.gethostbyname(socket.gethostname())
与Finding Local IP Addresses in Python中相同,并删除子进程依赖项?在这个问题上还有一些其他的建议。在
我还发现了一篇关于netifaces包的帖子,它的目标是通过更好的跨平台支持来做到这一点。在
为了更优雅一点,隐藏细节:
^{pr2}$如果您要使用子流程来实现这一点,那么优雅就有点受限,因为您实际上是在做类似于屏幕抓取的操作,除了这里是脚本抓取。如果您想要一个真正通用的解决方案,请使用socket库,即让Python处理可移植性。在
通常,当你看到一点代码,你希望有一个更好的更干净的方法来做它,这意味着你需要质疑你的假设,并改变算法或解决方案的架构。在
为什么不使用类似于:
与Finding Local IP Addresses in Python中相同,并删除子进程依赖项?在这个问题上还有一些其他的建议。在
我还发现了一篇关于netifaces包的帖子,它的目标是通过更好的跨平台支持来做到这一点。在
相关问题 更多 >
编程相关推荐