我需要编写一个简单的python(python3)脚本来将我的本地IP地址存储在变量中以便以后操作它,我读了很多但我不明白我在做什么这里错误的是一大堆代码,以便更好地理解..
#!/usr/bin/env pyhton3
import os
import subprocess
import sys
import fileinput
localip = subprocess.call(["ifconfig | grep 'inet addr' | cut -d ':' -f2 | grep 'Bcast' | cut -d ' ' -f1"], shell=True)
print localip
...
...
...
现在,当我执行它时,它会打印出来:
pi@raspberrypi:~/Documents $ python change.py
192.168.1.6
0
似乎我无法自己找到解决方案,有人能告诉我哪里出错并帮助我吗?感谢。
答案 0 :(得分:2)
要解决您的XY Problem,为什么不使用Python本身来获取您的IP /主机名?
>>> import socket
>>> socket.gethostname()
'MY-COMPUTER'
>>> socket.gethostbyname(socket.gethostname())
'192.168.1.126'
>>> socket.getfqdn()
'my-computer.local'
>>> socket.gethostbyname(socket.getfqdn())
'192.168.1.126'
答案 1 :(得分:1)
在python2中,您可以:
stdout = subprocess.check_output(args, shell=true)
在python3中,你也可以这样做:
completed_process = subprocess.run(args, shell=True)
stdout = completed_process.stdout
哪个可能是更有用的界面