如今的时间适合写点最近的小总结,这中间涉及到python/git等问题,我就从python先提及吧.html
1、Pythonpython
1. Python的异常处理git
由于想到本身不断尝试写小程序的话会用到抛出异常信息来判断哪里出现了问题:正则表达式
usage: raise [Exception [, args [, trackback]]]
上面是Python的raise的用法,下面是本身用这个方法实现异常的抛出方法:小程序
1 def check_args(args): 2 if not args.host: 3 msg = 'Args missing! One of the following args should be specified \n' \ 4 '--host 192.168.1.1 \n' \ 5 '-f TargetFile \n' 6 raise Exception(msg) 7 8 #参考别人的代码模式,我这样写来抛出异常.
2. list转strsocket
这个问题是由于本身的无知吧:函数
命令行传入的host(即ip地址)是list形式,想要经过list转为str的格式以后来进行socket.connect(),报错:
本身想象的姿式:
client.connect((str(args.host), args.p))
正确的姿式:
client.connect((''.join(args.host), args.p))
上图证实本身的愚蠢(可能下次还会犯一样的错):url
3. argparse函数spa
出发的动机是由于本身写的小程序要经过命令行的形式传参并执行命令.命令行
用本身的简单小实例来显示函数的具体用法吧:
1 def parse_args(): 2 parser = argparse.ArgumentParser(prog = 'hello', 3 formatter_class = argparse.RawTextHelpFormatter, 4 description = '* A tiny toy for fun *\n' 5 'By ST(www.********)', 6 usage = 'hellPLC.py [options]') 7 parser.add_argument('-host', metavar = 'HOST [HOST2 HOST3 ...]', type = str, 8 default = '', nargs = '*', 9 help = 'Scan the host form command line')
代码很简单,一看就懂大概函数是什么样子,重点是add_argument的参数,当你传入的cmd参数是这种方式的话:
咱们能够看到,须要在-p以后跟一个int型的参数才能够,还有另一种形式.
parser.add_argument('-p', metavar = 'PORT', type = int, default = '')
这种方式不须要跟参数,只须要相似于"python -h"这种形式就能够执行并获得想要的结果:
这里就须要对这个函数的各个参数的功能有个基本的了解,这样才能用起来舒服.
1 parser.add_argument('-b', default= False, dest='b', action='store_true', 2 help = 'Get the base info')
下图就是咱们能够跟的参数,本身的问题就是区分清楚action和dest这两个参数,还有default,type等.
4. 正则匹配
5. 格式化字符串
1 temp = '123456' 2 print("word:%s" %temp) 3 4 output: word:123456
很简单就能够搞定,可是当时想要返回取多个返回值,一会儿蒙住不知道怎么搞了,呵呵了~
1 f.write ("Block Type: %s \n" 2 "Block count: %s \n" 3 %(block_type, block_count)) 4 return block_type, block_count
代码很容易看,就是这样,搞定了.
先到这里,都是小问题,作个记录