基础库

1. 正则表达式:re

符号

()小括号 -- 分组

[]中括号 -- 字符类,匹配所包含的任一字符 #注:字符集合把【】里面的内容当作普通字符!(-\^除外)

{}大括号 -- 限定匹配次数

| 或 r'AC|D' -> AC或AD

. 匹配任一字符(\ 除外)

\. 匹配字符.

^ 脱字符 匹配输入字符串的开始位置 # r'^AC'

$ 匹配字符串末尾 # r'AC$'

\b 匹配一个单词的边界 (单词定义为字母,数字,下划线) ;\B 与 \b相反 匹配非单词边界

\d 匹配任一数字[0-9] ; \D 与 \d相反,[^0-9]

\s 匹配空白字符【\t \n \r \f \v】;\S与\s相反

\w 匹配字母 数字 下划线(中文也可以) 【a-z A-Z 0-9 _】; \W与\w相反

* 匹配子表达式0次或多次,等价于 {0,}

+ 匹配子表达式1次或多次,等价于 {1, }

? 匹配子表达是0次或1次,等价于{0,1}

贪婪模式

贪婪模式(python正则表达式中默认使用),尽可能多的去匹配

s = '<html><title>ssss<\html><\title>'

re.search(r'<.+>',s)
#输出: '<html><title>ssss<\html><\title>'

启用非贪婪模式

re.search(r'<.+?>', s)
# 输出: <html>

命令

1. re.search()

s = 'Bo ke yuan'

result = re.search(r'(\w+) (\w+)', s)
result.group() # 'Bo ke'
result.group(1) # 'Bo'; result.group(2) # 'ke' result.start() #0 (匹配起始位置)
result.end() #5 (匹配结束位置)
result.span() #(0, 5) (匹配范围)

2. re.findall()

如果给出的正则表达式包含子组,就会把子组的内容单独返回回来。

若包含多个子组,将匹配的内容组合成元组返回

如何让子组不捕获内容?

  非捕获组(?:) 把所有出现子组的地方都加 ?:

3. re.compile() 编译正则表达式

如果你需要重复的使用某个正则表达式,那么你可以先将正则表达式编译成模式对象。

p = re.compile(r'[A-Z]')
p.search('Bo Ke Yuan') # ['B']
p.findall('Bo Ke Yuan') # ['B', 'K', 'Y']

2. 参数:argparse

基本用法:

import argparse # step1. 导入模块

parser = argparse.ArgumentParser() # step2. 创建参数解析对象

parser.add_argument() # step3. 添加参数
"""位置参数:parser.add_argument("echo", help="参数描述") 必选
可选参数: parser.add_argument("--verbosity", help="参数描述") 可选
""" args = parser.parse_args() # step4. 解析参数
"""位置参数访问:args.echo
可选参数访问:args.verbosity
"""
def argsParser():
parser = argparse.ArgumentParser()
parser.add_argument(
"-t",
type=str,
default="train.txt",
help="训练文件名 - 支持相对路径",
)
args = parser.parse_args() return args.t

3. 数学函数库:math

4. 随机数:random

5. 多线程多进程:subprocess/multiprocessing/threading

6. 小工具(能减少代码行数):itertools/operator/collections

6.1 collections

c = collections.Counter(参数)
#参数可以是list、str、tuple、None等等
#作用:统计参数每个元素出现的次数
#返回:一个字典(元素作为key存储,元素出现次数作为value存储) #####例子:
c = Counter('gallahad')
# 输出: Counter({'a': 3, 'd': 1, 'g': 1, 'h': 1, 'l': 2}) c.update('adc') # 在原来基础上更新计数(直接修改c)
# 输出: Counter({'a': 4, 'c': 1, 'd': 2, 'g': 1, 'h': 1, 'l': 2}) c.most_common()
# 输出:[('a', 4), ('l', 2), ('d', 1), ('g', 1), ('b', 1), ('c', 1), ('h', 1)]
# 相当于字典排序:sorted(c.items(), key=lambda asd:asd[1], reverse=True)

6.2  itertools

# 格式 itertools.chain(*iterables)
#作用:将多个可迭代的对象转换成一条链
a = [[1, 2, 3], ['a', 'b', 'c']]
itertools.chain(a)
# 结果: 1, 2, 3, 'a', 'b', 'c'

第三方库

1. jieba

import jieba
words = jieba.cut(字符串, cut_all=True) # 全模式分词 (信息检索中常用
words = jieba.cut(字符串, cut_all=False) # 精确模式分词(默认) #支持并行分词
jieba.enable_paralle(4) #支持自定义词典
filename = '词典路径'
jieba.load_userdict(filename)
#词性标注
import jieba.posseg as pseg
word = pseg.cut(' 我来到北京清华大学')
for word, flag in words:
print("%s %s"%(word, flag))

2. 画图:matplotlib

3. 网络库:requests

python常用库函数 - 备忘的更多相关文章

  1. Python常用方法库备忘(一)_当前路径下文件夹和文件

    #!/usr/bin/env python # -*- coding:utf-8 -*- # --------------*-------------- # @Author : AilF # @Tim ...

  2. metasploit 常用命令备忘

    metasploit 常用命令备忘    MSFconsole Commands-------------------------------------24show exploits 查看所有exp ...

  3. Linux基础之常用基本命令备忘

    Linux基础之常用基本命令备忘 PWD   查询当前所在Linux上的位置 /         根目录 CD(change directory)切换目录  语法 CD /(注意添加空格)   LS ...

  4. Webstorm常用快捷键备忘(Webstorm入门指南)

    WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...

  5. sublime 常用快捷键备忘

    转一篇sublime常用的快捷键备忘 sublime常用快捷键 选择类Ctrl+D 选中光标所占的文本,继续操作则会选中下一个相同的文本.Alt+F3 选中文本按下快捷键,即可一次性选择全部的相同文本 ...

  6. Webstorm常用快捷键备忘

    WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.被广大中国JS开发者誉为“Web前端开发神器”.“最强大的HTML5编辑器”.“最智能的JavaSscript IDE ...

  7. Axure常用操作备忘

    目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...

  8. python之正则表达式备忘

    一简介:就其本质而言,正则表达式(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C ...

  9. CentOS常用命令备忘

    1. 查看进程 ps -a 杀掉进程 kill PID 2. 添加计划任务crontab -e 例如:30 21 * * * service httpd restart 每天21:30重启apache ...

随机推荐

  1. C++ 使用命名规范

    刚开始正式学习C++, 之前写了一个C++ 的小程序,但是并没有注意命名规范之类的.这一次重写一个类似的程序,再加上这几天学习 c++Prime(发现好喜欢这本书.虽然看的很慢,每一小节都感是满满的干 ...

  2. 1111. Online Map (30)

    Input our current position and a destination, an online map can recommend several paths. Now your jo ...

  3. jenkins maven git windows code 自动部署

    本人刚刚接触  写的不好就对付看看吧 哈哈哈O(∩_∩)O哈哈~ 最近看见别人弄得自动部署 自己也是手痒痒 也想弄一个 所以就弄了一个 windows的 我用的是https的  在网上看了很多都是 s ...

  4. s6-6 TCP 连接释放

    TCP 连接释放 任何一方在没有数据要传送的时候,都可以发送一个FIN置位了的 TCP 数据段 当FIN被确认的时候,该方向的连接被关闭 当双向连接都关闭了的时候,连接释放 两军队问题 两军队问题 ( ...

  5. JS prototype chaining(原型链)整理中······

    初学原型链整理 构造器(constructor).原型(prototype).实例(instance); 每一个构造器都有一个prototype对象,这个prototype对象有一个指针指向该构造器: ...

  6. latex 常用自定义_随时更新

    1.向量定义 代码: \newcommand{\vector}[1]{${#1}_1,{#1}_2,\cdots,{#1}_n$} 效果: a1,a2,...,an

  7. Postman SMTP 存在跨站脚本(XSS)漏洞,请换用Post SMTP Mailer/Email Log

    Postman SMTP 是一个安装量超过10W的WordPress插件,但是已经2年多没有更新,2017年6月29日,被发现存在跨站脚本(XSS)漏洞(查看详情),并且作者一直没有更新,所以被从Wo ...

  8. Windows平台最方便最易用的法语输入法

    原文:http://wenwen.sogou.com/z/q1700007921.htm 对于XP,在“控制面板”中选择“输入法区域设置”,单击“更改”,出现一个“设置”框:选择“添加”,然后选择“法 ...

  9. Slot使用

    1.组件中有单个或多个未命名slot标签时,如下:<Child><span style=”color:red;”>hello world</span></Ch ...

  10. 【hdu2000】ASCII码排序

    题目来源:www.acm.hdu.edu.cn 题目编号:2000 ASCII码排序 /*----------------------------------------原题目------------ ...