python
常用语句
-
shutil.rmtree(adir, ignore_errors=True)
删除文件夹 -
re.split(r'[ \t\n]',s)
多分割符分割字符串 -
repr
exec
转为python语法的字符串 运行python语法的字符串 -
s.encode('hex')
python2中获取字符串16进制表示 -
binascii.hexlify(s.encode())
binascii.b2a_hex(s.encode())
python3中获取字符串16进制表示
调试
-
python -m pdb your.py
进入调试模式 -
设置一个断点 仅在进入断点时进入调试模式
import pdb pdb.set_trace() #这句放在要断点的地方
- 更多调试方法: https://www.zhihu.com/question/21572891
获取generator(yield)的大小
len(tuple(generator))
兼容py2和py3
-
先用sys.version判断版本
if sys.version > '3': PY3 = True else: PY3 = False
-
根据版本调用不同的模块
if PY3: import subprocess as commands else: import commands
python2下的mkdir -p
#递归创建目录函数 python2真烦 def mkdir_p(path): try: os.makedirs(path) except OSError as exc: # Python >2.5 if exc.errno == errno.EEXIST and os.path.isdir(path): pass else: raise
python2下的带encoding的open
#带encoding的open 为了匹配python2 if sys.version_info[0] > 2: # py3k pass else: # py2 import codecs import warnings def open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None): if newline is not None: warnings.warn('newline is not supported in py2') if not closefd: warnings.warn('closefd is not supported in py2') if opener is not None: warnings.warn('opener is not supported in py2') return codecs.open(filename=file, mode=mode, encoding=encoding, errors=errors, buffering=buffering) 用法: open(xmlpath, "rt", encoding='utf-8', errors = 'strict')
二维数组
-
hef=[[0 for x in range(qlen)] for x in range(tlen)]
初始化二维数组
xml字符转义
def toxml(s): """ 将非法xml字符替换为实体引用 """ s = s.replace('<','<') s = s.replace('>','>') s = s.replace('&','&') s = s.replace('\'',''') s = s.replace('"','"') s = s.replace(' ','( )') return s