python取本机IP

python取本机IP

最近学习python,略有心得,不敢藏私,分享给大家。
我只是搜集,整理而已,如有引用,出处一概不可考。

取本机IP

Linux

import socket
import fcntl
import struct
def get_ip_address(ifname):
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    return socket.inet_ntoa(fcntl.ioctl(
        s.fileno(),
        0x8915,  # SIOCGIFADDR
        struct.pack('256s', ifname[:15])
    )[20:24])

#get_ip_address('lo')环回地址
#get_ip_address('eth0')主机ip地址


windows

        import re,urllib2
        from subprocess import Popen, PIPE
        print "本机的私网IP地址为:" + re.search('\d+\.\d+\.\d+\.\d+',Popen('ipconfig', stdout=PIPE).stdout.read()).group(0)
        print "本机的公网IP地址为:" + re.search('\d+\.\d+\.\d+\.\d+',urllib2.urlopen("http://www.7qiao.cn/ip.php").read()).group(0)

ImportError: No module named images 解决
体验wxpython IN action的时候
ImportError: No module named images
替换为
import wx.py.images as images

        images.getNewBitmap
替换为
        images.getPyBitmap()
python删除文件

import os

删除文件:
os.remove()

删除空目录:
os.rmdir()

递归删除空目录:
os.removedirs()

递归删除目录和文件(类似DOS命令DeleteTree):
方法1:自力更生,艰苦创业

# Delete everything reachable from the directory named in 'top',
# assuming there are no symbolic links.
# CAUTION:  This is dangerous!  For example, if top == '/', it
# could delete all your disk files.
import os
for root, dirs, files in os.walk(top, topdown=False):
    for name in files:
        os.remove(os.path.join(root, name))
    for name in dirs:
        os.rmdir(os.path.join(root, name))

方法2:前人栽树,后人乘凉
import shutil
shutil.rmtree()

一行搞定 __import__('shutil').rmtree()