1 #! usr/bin/env python
2 # -*- coding:utf-8 -*-
3
4 元字符、通配符
5 ".":匹配除换行以外的一个字符
6 "^":匹配以^后面的字符开始的
7 "$":匹配以$前面的字符结尾的;
8 "*":匹配0次或多次*前面的字符
9 "+":匹配1次或多次+前面的字符
10 re模块用于对python的正则表达式的操作。
11
12 字符:
13
14 . 匹配除换行符以外的任意字符
15 \w 匹配字母或数字或下划线或汉字
16 \s 匹配任意的空白符
17 \d 匹配数字
18 \b 匹配单词的开始或结束
19 ^ 匹配字符串的开始
20 $ 匹配字符串的结束
21
22 次数:
23
24 * 重复零次或更多次
25 + 重复一次或更多次
26 ? 重复零次或一次
27 {n} 重复n次
28 {n,} 重复n次或更多次
29 {n,m} 重复n到m次
30
31 re.match()
32 #从头匹配
33 re.search()
34 #浏览全部字符串,匹配第一个符合规则的字符串
35 re.findall()
36 #匹配到的所有内容放到一个列表中
37 re.finditer()
38
39 导入模块
40 import module
41 from module.xx.xx import xx
42 from module.xx.xx import xx as rename
43 from module.xx.xx import *
44
45 导入模块其实就是告诉Python解释器去解释那个py文件
46
47 导入一个py文件,解释器解释该py文件
48 导入一个包,解释器解释该包下的 __init__.py 文件
49 那么问题来了,导入模块时是根据那个路径作为基准来进行的呢?即:sys.path
50
51 import sys
52 print sys.path
53
54 结果:
55 ['/Users/wupeiqi/PycharmProjects/calculator/p1/pp1', '/usr/local/lib/python2.7/site-packages/setuptools-15.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg', '/usr/local/lib/python2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/xlutils-1.7.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/xlwt-1.0.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/xlrd-0.9.3-py2.7.egg', '/usr/local/lib/python2.7/site-packages/tornado-4.1-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/backports.ssl_match_hostname-3.4.0.2-py2.7.egg', '/usr/local/lib/python2.7/site-packages/certifi-2015.4.28-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pyOpenSSL-0.15.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/six-1.9.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/cryptography-0.9.1-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/cffi-1.1.1-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/ipaddress-1.0.7-py2.7.egg', '/usr/local/lib/python2.7/site-packages/enum34-1.0.4-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pyasn1-0.1.7-py2.7.egg', '/usr/local/lib/python2.7/site-packages/idna-2.0-py2.7.egg', '/usr/local/lib/python2.7/site-packages/pycparser-2.13-py2.7.egg', '/usr/local/lib/python2.7/site-packages/Django-1.7.8-py2.7.egg', '/usr/local/lib/python2.7/site-packages/paramiko-1.10.1-py2.7.egg', '/usr/local/lib/python2.7/site-packages/gevent-1.0.2-py2.7-macosx-10.10-x86_64.egg', '/usr/local/lib/python2.7/site-packages/greenlet-0.4.7-py2.7-macosx-10.10-x86_64.egg', '/Users/wupeiqi/PycharmProjects/calculator', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python27.zip', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/site-packages', '/Library/Python/2.7/site-packages']
56 如果sys.path路径列表没有你想要的路径,可以通过 sys.path.append('路径') 添加。
57 通过os模块可以获取各种目录,例如:
58 import sys
59 import os
60
61 pre_path = os.path.abspath('../')
62 sys.path.append(pre_path)
63
64 内置模块:
65 一、os
66 用于提供系统级别的操作
67 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
68 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
69 os.curdir 返回当前目录: ('.')
70 os.pardir 获取当前目录的父目录字符串名:('..')
71 os.makedirs('dirname1/dirname2') 可生成多层递归目录
72 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
73 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
74 os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
75 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
76 os.remove() 删除一个文件
77 os.rename("oldname","newname") 重命名文件/目录
78 os.stat('path/filename') 获取文件/目录信息
79 os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
80 os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
81 os.pathsep 输出用于分割文件路径的字符串
82 os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
83 os.system("bash command") 运行shell命令,直接显示
84 os.environ 获取系统环境变量
85 os.path.abspath(path) 返回path规范化的绝对路径
86 os.path.split(path) 将path分割成目录和文件名二元组返回
87 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
88 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
89 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
90 os.path.isabs(path) 如果path是绝对路径,返回True
91 os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
92 os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
93 os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
94 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
95 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
96
97 二、sys
98 用于提供对解释器相关的操作
99 sys.argv 命令行参数List,第一个元素是程序本身路径
100 sys.exit(n) 退出程序,正常退出时exit(0)
101 sys.version 获取Python解释程序的版本信息
102 sys.maxint 最大的Int值
103 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
104 sys.platform 返回操作系统平台名称
105 sys.stdout.write('please:')
106 val = sys.stdin.readline()[:-1]
107
108
109 用于加密相关的操作,代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法
110
111 import md5
112 hash = md5.new()
113 hash.update('admin')
114 print (hash.hexdigest())