Python小问题汇总
现在的时间适合写点最近的小总结,这中间涉及到python/git等问题,我就从python先说起吧.
一、Python
1. Python的异常处理
因为想到自己不断尝试写小程序的话会用到抛出异常信息来判断哪里出现了问题:
usage: raise [Exception [, args [, trackback]]]
上面是Python的raise的用法,下面是自己用这个方法实现异常的抛出方法:
def check_args(args):
if not args.host:
msg = 'Args missing! One of the following args should be specified \n' \
'--host 192.168.1.1 \n' \
'-f TargetFile \n'
raise Exception(msg) #参考别人的代码模式,我这样写来抛出异常.
2. list转str
这个问题是因为自己的无知吧:
命令行传入的host(即ip地址)是list形式,想要通过list转为str的格式之后来进行socket.connect(),报错: 自己想象的姿势:
client.connect((str(args.host), args.p)) 正确的姿势:
client.connect((''.join(args.host), args.p))
上图证明自己的愚蠢(可能下次还会犯同样的错):

3. argparse函数
出发的动机是因为自己写的小程序要通过命令行的形式传参并执行命令.
用自己的简单小实例来显示函数的具体用法吧:
def parse_args():
parser = argparse.ArgumentParser(prog = 'hello',
formatter_class = argparse.RawTextHelpFormatter,
description = '* A tiny toy for fun *\n'
'By ST(www.********)',
usage = 'hellPLC.py [options]')
parser.add_argument('-host', metavar = 'HOST [HOST2 HOST3 ...]', type = str,
default = '', nargs = '*',
help = 'Scan the host form command line')
代码很简单,一看就懂大概函数是什么样子,重点是add_argument的参数,当你传入的cmd参数是这种方式的话:
我们可以看到,需要在-p之后跟一个int型的参数才可以,还有另外一种形式.
parser.add_argument('-p', metavar = 'PORT', type = int,
default = '')
这种方式不需要跟参数,只需要类似于"python -h"这种形式就可以执行并得到想要的结果:
这里就需要对这个函数的各个参数的功能有个基本的了解,这样才能用起来舒服.
parser.add_argument('-b', default= False, dest='b', action='store_true',
help = 'Get the base info')
下图就是我们可以跟的参数,自己的问题就是区分清楚action和dest这两个参数,还有default,type等.

4. 正则匹配
5. 格式化字符串
temp = ''
print("word:%s" %temp) output: word:123456
很简单就可以搞定,但是当时想要返回取多个返回值,一下子蒙住不知道怎么搞了,呵呵了~
f.write ("Block Type: %s \n"
"Block count: %s \n"
%(block_type, block_count))
return block_type, block_count
代码很容易看,就是这样,搞定了.
先到这里,都是小问题,做个记录
Python小问题汇总的更多相关文章
- python小知识点汇总
一 写mysql 场景:自动化用例中需要构造数据,写入redis 表中已有该primary_key的记录,在现有基础上更新字段 表中无该记录,需要插入 # 请求传入table字段,db.table,c ...
- python小题目汇总
1.编程计算两个日期之间的天数与周数 Python时间处理---dateutil模块: dateutil模块主要有两个函数,parser和rrule. 其中parser是根据字符串解析成datetim ...
- Python小功能汇总
1.没有文件夹就新建 适用以下3种情况. (1)文件夹适用 (2)相对路径适用 (3)绝对路径适用 # 判断输出文件夹是否存在.不存在就创建 # 1.output_dir为绝对路径 if os.pat ...
- python 小数据池,代码块, is == 深入剖析
python小数据池,代码块的最详细.深入剖析 一. id is == 二. 代码块 三. 小数据池 四. 总结 一,id,is,== 在Python中,id是什么?id是内存地址,那就有人问了, ...
- 一份超全的Python学习资料汇总
一.学习Python必备技能图谱二.0基础如何系统学习Python?一.Python的普及入门1.1 Python入门学习须知和书本配套学习建议1.2 Python简史1.3 Python的市场需求及 ...
- 【现学现卖】python小爬虫
1.给小表弟汇总一个院校列表,想来想去可以写一个小爬虫爬下来方便些,所以就看了看怎么用python写,到了基本能用的程度,没有什么特别的技巧,大多都是百度搜的,遇事不决问百度啦 2.基本流程就是: 用 ...
- [Python] 学习资料汇总
Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大且完善的通用型语言,已经有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用 ...
- Python小工具--删除svn文件
有的时候我们需要删除项目下的svn相关文件,但是SVN会在所有的目录下都创建隐藏文件.svn,手工一个个目录查找然后删除显然比较麻烦.所以这里提供了一个Python小工具用于批量删除svn的相关文件: ...
- python小练习(自己瞎倒腾)
python小练习 在网上无意中看到一个问题,心血来潮写了写,觉得比较有意思,以后遇到这种有意思的小练习也记录下. #!/usr/bin/env python # -*- coding:utf-8 - ...
随机推荐
- FluentMigrator
开源DataBase组件:FluentMigrator 2012-05-27 19:09 by 破狼, 2211 阅读, 4 评论, 收藏, 编辑 今天将介绍一款开源组件FluentMigrator, ...
- 关于easyui的tab,layout,datagrid嵌套的问题
我的项目使用easyui作为前台的展示框架现在页面中是一个layout布局(分上,左,中)在左边是一些菜单,点击后,在中间部分增加一个tab显示内容而增加的tab里面是显示一些列表数据,列表上面是查询 ...
- CreateFont详细解释
CFont * f; f = new CFont; f->CreateFont(10, // nHeight 0, // nWidth 0, // n ...
- 转: js快速分享代码
这是一款简单易用的文章分享工具,您只需将下面的html代码拷贝到模板中就可以实现文章快速分享功能.如果您想分享你的博客.个人网站或者企业网站等等,下面是两款不错的分享工具,值得拥有! 1. [html ...
- ajax的get请求
get和post是http请求方法最主要的两种方式. get: 先实现一个简单的get请求 index.html <!DOCTYPE html> <html lang="e ...
- keepalive学习
keepalive学习之软件设计 软件架构如下图所示: Keepalived 完全使用标准的ANSI/ISO C写出. 该软件主要围绕一个中央I/O复用分发器而设计,这个I/O复用分发器提供网络实时功 ...
- KMP 代码 暂存
#include <stdio.h> #include <string.h> ],B[]; ]; int n, m; void _next(){ ; ; next[] = ; ...
- android中自定义Theme以及TitleBar
1.自定义Theme. 在res/values/styles.xml中的resources块中添加如下代码: <style name="StatusBarBackground" ...
- 分享一个C#自定义事件的实际应用
在C#.NET的开发中,事件是经常接触到的概念,比如为按钮添加点击事件,并写入点击按钮触发事件要运行的代码.不管是ASP.NET还是WinForm等各种形式的应用程序,最经常是为系统生成的事件写具体代 ...
- c# in deep 之Lambda表达式于LINQ表达式结合后令人惊叹的简洁(2)
当Lambda表达式和LINQ一起使用时,我们会发现原本冗长的代码会变得如此简单.比如我们要打印0-10之间的奇数,让其从高到低排列并求其平方根,现在只用一行代码即可完成其集合的生成,直接上代码: v ...