Contents
获取Mac地址
#####python获取mac地址有多种方式,如下:
1 借助uuid模块实现,改方法适用性更强一些def ():
import uuid
node=uuid.getnode()
mac=uuid.UUID(int=node).hex[-12:]
return mac
2 按照操作系统平台,通过popen的数据还受到系统语言环境的影响,如果是中文环境下’ipconfig/all’的结果就包含有中文,要查找mac地址的话,就需要查找’物理地址’def ():
import sys
import os
mac=None
if sys.paltform="win32":
for line in os.popen('ipconfig/all'):
print line
if line.lstrip().startwith('Physical Address'):
mac=line.split(':')[1].strip().replace('-',":")
break
else
for line in os.popen('/sbin/ifconfig'):
if 'Ether' in line:
mac=line.split()[4]
break
return mac
bat调用python的合理方式
“pythonw.exe”和”python.exe”的区别:
1 前者执行时不会出现DOS窗口
2 前者执行时所有stdin和stdout都无效
3 前者执行时原有的stdin只会得到EOF
所以如果bat调用python想不出现DOS窗口,需要调用”pythonw.exe”cd %python_home%
start pythonw test.py
exit
python 命令行参数
python中,参数设置,首先需要导入sys。argc,argv对应情况如下:
如存在文件名称为“test.py”,在命令行输入:python test.py hello world,获取参数情况如下:
sys.argv[0] ——脚本名称(如test.py)
sys.argv[1] ——hello
sys.argv[2] __world
python中使用命令行选项:
例如我们需要一个convert.py,它的作用是处理一个文件,并将结果输出到另一个文件中
。要求该脚本满足一下条件:
1 通过-i-o选项来区别参数是输入文件还是输出文件python convert.py -i inputifle -o outputifle
2 当不知道convert.py需要哪些参数时,用-h打印出帮助信息。python convert.py -h
getop函数原形:
getopt.getopt(args,options[,long_options])
convert.pyimport sys.getopt
opts,args=getopt.getopt(sys.argv[1:],'hi:o:')
input_file=""
output_file=""
for op,value in opts:
if op=="-i":
input_file=value
elif op=="-o":
output_file=value
elif op=="-h":
usage()
sys.exit()
代码解释:
sys.argv[1:]为处理的参数列表,sys.argv[0]为脚本名,所以用sys.argv[1:]过滤脚本名。
“hi:o:”:当一个选项只是表示开关状态时,即后面不带附加参数时,在分析串中写入选项字符。当选项后面是带一个附加参数时,在分析串写入选项字符同时后面加一个”:”号。所以”hi:o:”中表示”h”是一个开关选项;”i:”和”o:”则表示后面应该带一个参数。
调用getopt函数。函数返回两个列表:opts和args。opts为分析出的格式信息。args为不属于格式信息的剩余的命令行参数。opts是一个两元组列表。每个元素为:(选项串,附加参数)。如果没有附加参数则为空串’’。
getopt函数的第三个参数[,long_options]为可选的长选项参数,上面例子中的都为短选项(如-i -o)
长选项格式举例:
–version
–file=error.txt
让一个脚本同时支持短选项和长选项
getopt.getopt(sys.argv[1:],’hi:o:’,[“version”,”file=”])