使用环境:
**mac **
pycharm
python2.7
可以看到的内容如下:
fileinput模块
time 模块
random模块
fileinput
-
input 函数
基本格式fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)
files: #文件的路径列表,默认是stdin方式,多文件['1.text', '2.text', ...]
inplace: #是否将标准输出结果写回文件,默认不取代
backup: #备份文件的扩展名,只指定扩展名,如.bak。如果该文件的备份文件已存在,则会覆盖
bufsize: #缓冲区大小默认为0,如果文件很大可以修改此参数, 一般默认即可
mode: #读写模式,默认为只读
openhook: #该钩子用于控制打开的所有文件, 比如说编码方式等。
代码示例:
# _*_coding:utf8_*_
import fileinput
for line in fileinput.input(inplace=True):
line = line.rstrip()
num = fileinput.lineno()
print '%-40s # %2i ' % (line, num)
代码讲解 :
inplace = True 将输出结果写回文件 (不建议)
line.rstrip() 清空字符串外部的空行 如' hello world ' 输出为'hello world'lineno()函数返回当前累计的行数
%-40s 表示输出一个string值后空40个空格位
%2i 表示保留两位有效数字
time 模块
asctime函数 将当前时间格式化为字符串或者是将时间元组转化为字符串
代码示例:
#_*_coding:utf8_*_
import time
print time.asctime()
#输出结果为Sat Apr 8 11:03:12 2017
localtime([secs]) 将秒数转换为日期元组, 以本地时间为准
mktime(tuple) 将时间元组转换为本地时间
sleep(secs) 休眠(不做任何事情)secs秒
strptime(string[.format]) 将字符串解析为时间元组
time() 当前时间
random 模块
shelve
open
shelve.open
函数返回的对象并不是普通的映射
re
正则表达式
通配符
点号(.) 可以匹配任何字符,除了换行符(\n),所以.ython
可以匹配python
+ython
或者是ython
(第一个字符是空格)但是不能匹配ppython
chpython
等等,也就是说点号可以匹配除换行符之外的任何单一字符
对特殊字符进行转义
假设要匹配字符串python.org
但是点号属于通配符,可以代替任何除换行符之外的单一字符,也就是说 他可以匹配pythonLorg
,如果想匹配python.org
怎么办呢?可以通过转义来达到目标 python\\.org
选择符和子模式
如果想匹配 python
和 per
可以使用用于选项的特殊字符:|
(术语为管道符号), 所以表达式可以写成 python|per
。
有的时候不需要对整个模式使用,可以使用圆括号括起需要的部分或者称为子模式 可以写成p(ython|er)
子模式也适用于单个字符
可选项和重复子模式
在子模式下加上?
就可以变为可选项,例如(http://)?(www\.)?python\.org
可以匹配以下几种字符串:
http://www.python.org
http://python.org
www.python.org
python.org
?
号表示子模式可以出现一次或者一次都不出现,下面这些运算符允许子模式出现多次
(pattern)*
: 允许模式重复0次或者多次
(pattern)+
: 允许模式重复1次或者多次
(pattern){m,n}
: 允许模式重复m~n次
字符串的开始和结尾
^ht+p
会匹配http://python.org
或者httttp://python.org
类似的字符串结尾用$
符号标识