一、环境搭建:win7 + Python 2.7.13 环境。
二、安装好之后编写第一个脚本:
import sys
import struct
def print_usage():
print "usage example : command xxx xxx "
def main():
argc = len(sys.argv)
argv = sys.argv
BUFF_SIZE = 0x10
if argc < MAX_FILE_NUM:
print 'argc < ',MAX_FILE_NUM
else:
try:
fp_r = open(str(sys.argv[1]),'r')
fp_w = open(str(sys.argv[2]),'wb+')
except IOError:
print sys.argv[1],"file no exit"
return
while True:
buf = fp_r.read(BUFF_SIZE)
if buf:
fp_w.write(buf)
else:
break
fp_r.close()
fp_w.close()
if __name__ == '__main__':
MAX_FILE_NUM = 3
BUFF_SIZE = 0x10
main()
三、第一个脚本涉及的知识点:
脚本的功能是:读取第一个参数的文件,每次读16字节,写到第二个参数文件里面。
1、import 关键字是导入模块,和java的import相似,和C语言的include相似。
2、def 关键字就是define的缩写,声明函数,跟c语言和java相比 python函数不需要跟返回值类型,程序里面可以用 return 语句返回,若return 后面没带参数或者没有return 语句函数会自动返回 None 对象。函数小括号里面是参数列表。
3、print 类似于c的printf功能,输出调试信息,重定向规则和c差不多但是也有差别。参考 :print "my name is %s" % ("gcb")
4、函数体和循环语句等都没有大括号表示范围,python使用缩进代替大括号。函数括号和循环等语句后面跟 : 号结束。
5、python 没有main 不像 C 语句是顺序执行的,会执行不是函数定义的第一条没有缩进的语句。
6、变量灵活使用,格式不定。a = 1 之后也可以 a = "gcb" ,
7、if 判断语句 ,while 语句,和c语言类似。
8、因为没有c语言那样有确定的程序入口,python使用 if __name__ == '__main__': 来区分import的模块与自己本身,如果模块是被导入, __name__ 的值为模块名字
如果模块是被直接执行, __name__ 的值为 '__main__'。
9、try: except IOError: 是错误处理语法格式。
-----------------------------------------------------------------------------------------------------2017.09.13--------------------------------------------------------------------------------------------------------------
10. if LEAP_DEF_FLAG in buf 语句判断 LEAP_DEF_FLAG 是否包含 buf 。