仅供个人笔记用,记录查询过的代码片断和一些语法,不成系统。随遇随加,为方便修改才置顶。
__future__
from __future__ import print_function
print函数
http://blog.csdn.net/weixin_35653315/article/details/71642154
输出到文件
from __future__ import print_function
with open('log.txt', 'w') as f:
print('hello', file=f)
all
http://blog.csdn.net/weixin_35653315/article/details/71403775
str
str.split
http://blog.csdn.net/weixin_35653315/article/details/71440937
正则表达式
import re
re.findall(pattern, s)
re.split(splitter, s)
查找替换
str对象本身带有replace
方法, 但不支持正则表达式,还需要借助re
包来实现支持正则表达式的replace
方法:
def replace_all(s, old, new, reg = False):
if reg:
import re
targets = re.findall(old, s)
for t in targets:
s = s.replace(t, new)
else:
s = s.replace(old, new)
return s
文件名操作
查找
import glob
result_dir = util.io.get_absolute_path(sys.argv[1])
xmls = glob.glob(r'%s/*/*/evalfixed.xml'%(result_dir))
sys
sys
模块封装了与python解释器相关的函数与属性。
sys.modules
一个字典,存储了当前加载的所有模块。
其中, 一个比较特殊的是sys.modules['__main__']
,它代表程序入口模块。
sys.exit
退出程序
sys.argv
用于获取传入的参数, 例如:
gpus = sys.argv[1]
0号参数是文件名。
标准I/O流
sys.stdin
sys.stdout
sys.stderr
collections
nametuple
自 Python 2.6 开始, namedtuple
就加入到 Python 里, 用以构建只有少数属性但是没有方法的对象, 比如数据库条目。
import collections
Card = collections.namedtuple('Card', ['rank', 'suit'])
card = Card('K', 'Black Blad')
特殊方法
特殊方法是指以__
开头与结尾的方法,用户一般不直接调用,而是被一些语法触发后由系统调用, 例如len(obj)
会调用obj
的__len__()
方法, obj[...]
会触发obj
的__getitem__()
方法.
语法 | 特殊方法 |
---|---|
len(obj) | __len__() |
obj.[...] | __getitem__() |
for obj in objs | __iter__() |
str(obj) | __str__(), __repr__() |
乘法 | __mul__() |
加法 | __add__() |
abs | __abs__() |
repr 所返回的字符串应该准确、 无歧义, 并且尽可能表达出如何
用代码创建出这个被打印的对象。 因此这里使用了类似调用对象构造器
的表达形式( 比如 Vector(3, 4) 就是个例子) 。
repr 和 str 的区别在于, 后者是在 str() 函数被使用, 或
是在用 print 函数打印一个对象的时候才被调用的, 并且它返回的字
符串对终端用户更友好。
如果你只想实现这两个特殊方法中的一个, repr 是更好的选择,
因为如果一个对象没有 str 函数, 而 Python 又需要调用它的时
候, 解释器会用 repr 作为替代。