Python将IP转换为八进制地址

Python将IP转换为八进制地址,python,python-2.7,ip,converter,octal,Python,Python 2.7,Ip,Converter,Octal,如何在Python2.7中将IP地址转换为虚线八进制地址? 例如:127.0.0.1=0177.0000.0000.0001 我试过这个,但结果不一样 ip = '127.0.0.1' print '.'.join([oct(int(x)+256)[3:] for x in ip.split('.')]) 试试这个: print '%04o.%04o.%04o.%04o' % tuple(map(int, ip.split('.'))) ip="127.0.0.1" octalIP='.'.

如何在Python2.7中将IP地址转换为虚线八进制地址? 例如:127.0.0.1=0177.0000.0000.0001

我试过这个,但结果不一样

ip = '127.0.0.1'
print '.'.join([oct(int(x)+256)[3:] for x in ip.split('.')])
试试这个:

print '%04o.%04o.%04o.%04o' % tuple(map(int, ip.split('.')))
ip="127.0.0.1"
octalIP='.'.join(["%04o" % int(x) for x in ip.split('.')])
print octalIP

试试这个:

print '%04o.%04o.%04o.%04o' % tuple(map(int, ip.split('.')))
ip="127.0.0.1"
octalIP='.'.join(["%04o" % int(x) for x in ip.split('.')])
print octalIP
[编辑:感谢abarnert指出了一种更简单的格式使用方法]

>>> ip = '127.0.0.1'
>>> print '.'.join(format(int(x), '04o') for x in ip.split('.'))
0177.0000.0000.0001
试试这个:

print '%04o.%04o.%04o.%04o' % tuple(map(int, ip.split('.')))
ip="127.0.0.1"
octalIP='.'.join(["%04o" % int(x) for x in ip.split('.')])
print octalIP
输出:
0177.0000.0000.0001

当格式字符串只是一个说明符时,不需要
str.format
;只需使用
格式(int(x),'04o')