参数相关,运行一个phthon脚本的时候经常会在后面带几个参数,怎么解析这些参数呢。
用sys
import sys
获取参数: sys.argv[0]:脚本本身。sys.argv[1]:第一个参数,以此类推
总的参数个数:len(sys.argv)
退出脚本运行:sys.exit()
文件相关:
参数中提供一个文件路径时,怎么解析绝对路径,相对路径。
用os
import os
判断是否是绝对路径:os.path.isabs(path),如果是绝对路径返回True,否则返回False。
绝对路径指的是从根目录‘/’开始的路径,其它都是相对路径。
获取绝对路径:abspath=os.path.abspath(path)
获取文件所在的目录:os.path.dirname(abspath)
有时候需要把文件的后缀名去掉,可以这样:filename=os.path.splitext(path)[0]。
比如path是abc.bin,os.path.splitext(path)生成一个list,里面是[ abc bin]。
获取文件大小:os.path.getsize(path)
写bin文件:
open(filename,'wb'),wb打开文件。
f.write(abc),abc要是字符或字符串。
如果是十六进制数怎么写:
比如0xa1a1,s=struct.pack('H', 0xa1a1),(H是unsigned short,16位的。B是unsigned char,8位的。如果是小写的b或h则是有符号的。) f.write(s)
把一个文件里的内容挨个写入另外一个文件
while 1:
c=fin.read(1)
if not c:
break
fout.write(c)
其它:
int(x,base):x 有两种:str / int
1、若 x 为纯数字,则不能有 base 参数,否则报错;其作用为对入参 x 取整
>>> int(3.1415926) 3 >>> int(-11.123) -11 >>> int(2.5,10) #报错
2、若 x 为 str,则 base 可略可有。
base 存在时,视 x 为 base 类型数字,并将其转换为 10 进制数字。
若 x 不符合 base 规则,则报错。
>>>int("9",2) #报错,因为2进制无9 >>> int("9") 9 #默认10进制
>>> int("3.14",8) >>> int("1.2") #均报错,str须为整数 >>>int("1001",2) 9 # "1001"才是2进制格式,并转化为十进制数字9 >>> int("0xa",16) 10
运行一个本地命令: os.system('cmd')
如果cmd里带变量,可以这样:'ls -l %s' % file,file里保存的是文件名。
print变量:
print "this is test for %s" % var
var是字符串变量。