未加星标

Python小问题汇总

字体大小 | |
[开发(python) 所属分类 开发(python) | 发布者 店小二05 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏

现在的时间适合写点最近的小总结,这中间涉及到python/git等问题,我就从python先说起吧.

一、Python

1. Python的异常处理

因为想到自己不断尝试写小程序的话会用到抛出异常信息来判断哪里出现了问题:

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转str

这个问题是因为自己的无知吧:

命令行传入的host(即ip地址)是list形式,想要通过list转为str的格式之后来进行socket.connect(),报错: 自己想象的姿势: client.connect((str(args.host), args.p)) 正确的姿势: client.connect((''.join(args.host), args.p))

上图证明自己的愚蠢(可能下次还会犯同样的错):


Python小问题汇总

3.argparse函数

出发的动机是因为自己写的小程序要通过命令行的形式传参并执行命令.

用自己的简单小实例来显示函数的具体用法吧:

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等.


Python小问题汇总

4. 正则匹配

这个东西有点高深了,最初的想法是使用正则来转变接收到的数据的格式,问过达哥之后原本recv到的数据在encode之后的类型是"str",之前自己的想法是把数据转成list格式,之后提取之类的方便,但"str"类型也可以直接利用偏移来进行分析也可以,直接用"str[]"就可以搞定,因为这个过程中不需要可视化的打印出来,需要打印的是分析之后的结果.所以正则先用不到.

不过还是要把搜资料的时候觉得不错的链接放一下:

一篇是百度文库的:

http://wenku.baidu.com/link?url=bMTTtHixiUvnl5PSyMhdCqnGcGO6lSU8pGfMf5o0wU8jnzTWbQdnjNek83G8Pi4gGhEk-

一篇是博客园的,里面有那张个人感觉很经典的图片:

http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html

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

代码很容易看,就是这样,搞定了.

先到这里,都是小问题,做个记录

本文开发(python)相关术语:python基础教程 python多线程 web开发工程师 软件开发工程师 软件开发流程

主题: Python数据SU百度博客3G动机
分页:12
转载请注明
本文标题:Python小问题汇总
本站链接:http://www.codesec.net/view/522561.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(python) | 评论(0) | 阅读(72)