Standard Library Modules Using Notes
- 类型转换
int(x [,base ]) 整数 long(x [,base ]) 长整数 float(x ) 浮点数 complex(real [,imag ]) 复数 str(x ) 字符串 repr(x ) 表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 元组 list(s ) 列表 chr(x ) 字符 unichr(x ) Unicode字符 ord(x )字符转换为它的整数值
hex(x ) 整数转换为一个十六进制字符串 oct(x ) 整数转换为一个八进制字符串
- _winreg
REG_NONE 0 REG_SZ 1 REG_EXPAND_SZ 2 REG_BINARY 3 REG_DWORD 4 REG_DWORD_LITTLE_ENDIAN 4 REG_DWORD_BIG_ENDIAN 5 REG_LINK 6 REG_MULTI_SZ 7
REG_RESOURCE_LIST 8 REG_FULL_RESOURCE_DESCRIPTOR 9 REG_RESOURCE_REQUIREMENTS_LIST 10 REG_QWORD 11 REG_QWORD_LITTLE_ENDIAN 12
CloseKey() – 关闭一个Key
ConnectRegistry() – 链接到其他机器的注册表
CreateKey() – 创建一个Key
DeleteKey() – 删除一个Key
DeleteValue() – 删除一个Key里面的值(value)
EnumKey() – 为已经打开的Key里面的子键建立索引
EnumValue() – 为打开的键中的值建立索引
FlushKey() – 回写所有的键属性改变到注册表
LoadKey() – 从指定文件读入键信息
OpenKey() – 打开一个键
OpenKeyEx()
QueryValue() – 在注册表中检索一个键的路径
QueryValueEx() – 注册表中检索一个键的路径
QueryInfoKey() – 返回关于键的信息
SaveKey() – 保存键到文件
SetValue() – 设置一个键
SetValueEx() – 设置一个值
# traverse all values of one key key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", 0, _winreg.KEY_WRITE) try: i = 0 while True: name, value, type = _winreg.EnumValue(key, i) print repr(name), value, type i += 1 except WindowsError, e: print e # query specified value directly (value, valuetype) = _winreg.QueryValueEx(key, 'Path')
1 # __author__ = 'rtian' 2 import sys, os 3 4 # 返回path规范化的绝对路径 5 os.path.abspath('../csv\\test.csv') # 'C:\\csv\\test.csv' 6 7 # 将path分割成目录和文件名二元组返回 8 os.path.split('c:\\csv\\test.csv') # ('c:\\csv', 'test.csv') 9 os.path.split('c:\\csv\\') # ('c:\\csv', '') 10 11 # 返回path最后的文件名,即os.path.split(path)的第二个元素 12 os.path.basename('c:\\test.csv') # 'test.csv' 13 os.path.basename('c:\\csv') # 'csv'(这里csv被当作文件名处理了) 14 os.path.basename('c:\\csv\\') # '' 15 16 # 返回list中,所有path共有的最长的路径 17 os.path.commonprefix(['/home/td', '/home/td/ff', '/home/td/fff']) # '/home/td' 18 19 # 如果path存在,返回True;如果path不存在,返回False 20 os.path.exists('c:\\') # True 21 22 # 如果path是绝对路径,返回True 23 os.path.isabs('path') 24 25 # 如果path是一个存在的文件,返回True。否则返回False 26 os.path.isfile('c:\\boot.ini') # True 27 os.path.isfile('c:\\csv\\') # False 28 29 # 如果path是一个存在的目录,则返回True。否则返回False 30 os.path.isdir('c:\\windows\\test.csv') # False 31 32 # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 33 os.path.join('c:\\', 'csv', 'test.csv') # 'c:\\csv\\test.csv' 34 os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv') # 'c:\\csv\\test.csv' 35 os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c') # '/home/aa/bb/c' 36 37 # 在Linux和Mac平台上,该函数会原样返回path,在windows平台上会将路径中所有字符转换为小写,并将所有斜杠转换为饭斜杠 38 os.path.normcase('c:/windows\\system32\\') # 'c:\\windows\\system32\\' 39 40 # 规范化路径 41 os.path.normpath('c://windows\\System32\\../Temp/') # 'c:\\windows\\Temp' 42 43 #从start开始计算相对路径 44 os.path.relpath(path[, start]) 45 p = 'a/b/c/d' 46 print os.path.relpath(p) #默认当前目录开始 相当于 ./a/b/c/d 47 print os.path.relpath(p,'a/b')# 以a/b/目录开始 c/d 48 49 # 返回(drivername,fpath)元组 50 os.path.splitdrive('c:\\windows') # ('c:', '\\windows') 51 52 # 分离文件名与扩展名;默认返回(fname,fextension)元组,可做分片操作 53 os.path.splitext('c:\\csv\\test.csv') # ('c:\\csv\\test', '.csv') 54 55 # 返回path的文件的大小(字节) 56 os.path.getsize('c:\\boot.ini')# 3.299L 57 58 # 返回path所指向的文件或者目录的最后存取时间a 最后修改时间m 59 os.path.getatime('path') 60 os.path.getmtime('path') 61 62 # 获取操作系统当前的路径 63 os.getcwd() 64 os.path.abspath(os.curdir) 65 os.path.abspath('.') 66 67 os.path.dirname(__file__) 68 # (1).当"print os.path.dirname(__file__)"所在脚本是以完整路径被运行的, 那么将输出该脚本所在的完整路径,比如: 69 # python d:\pythonSrc\test\test.py 那么将输出 d:\pythonSrc\test 70 # (2).当"print os.path.dirname(__file__)"所在脚本是以相对路径被运行的, 那么将输出空目录,比如: 71 # python test.py 那么将输出空字符串
import re # re.match 尝试从字符串的开始匹配一个模式, 匹配成功,则返回一个Match,否则返回None re.match(pattern, string, flags) re.match(‘super’, ‘superstition’).span() (0, 5) # re.search函数会在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None re.search(pattern, string, flags) # re.sub用于替换字符串中的匹配项。下面一个例子将字符串中的空格 ' ' 替换成 '-' >>> text = "hell o , you asr.." >>> re.sub(r"\s+", '-', text) 'hell-o-,-you-asr..' re.sub(r'\s', lambda m: '[' + m.group(0) + ']', text, 0);# 将字符串中的空格' '替换为'[ ]'。 # re.split来分割字符串, 将字符串按空格分割成一个单词列表 >>> re.split(r'\s+', text) ['hell', 'o', ',', 'you', 'asr..'] # re.findall获取字符串中所有匹配的字符串 re.findall(r'\w*oo\w*', text)获取字符串中,包含'oo'的所有单词 # re.compile把经常使用的正则表达式编译成正则表达式对象 text = "JGood is a handsome boy, he is cool, clever, and so on..." regex = re.compile(r'\w*oo\w*') print regex.findall(text) #查找所有包含'oo'的单词 print regex.sub(lambda m: '[' + m.group(0) + ']', text) #将字符串中含有'oo'的单词用[]括起来。
- subprocess
import subprocess cmd="cmd.exe" begin=1 end=3 while begin<end: p=subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE) p.stdin.write("ping 192.168.32."+str(begin)+"\n") p.stdin.close() p.communicate() print "execution result: %s"%p.stdout.read() begin=begin+1
- shutil
import os import shutil # 用shutil.copytree当dst存在且不能删除时 root_src_dir = 'Src Directory\\' root_dst_dir = 'Dst Directory\\' for src_dir, dirs, files in os.walk(root_src_dir): dst_dir = src_dir.replace(root_src_dir, root_dst_dir) if not os.path.exists(dst_dir): os.mkdir(dst_dir) for file_ in files: src_file = os.path.join(src_dir, file_) dst_file = os.path.join(dst_dir, file_) if os.path.exists(dst_file): os.remove(dst_file) shutil.move(src_file, dst_dir)
- __all__
一、在模块(*.py)中使用意为导出__all__列表里的类、函数、变量等成员,否则将导出modualA中所有不以下划线开头(私有)的成员,在模块中使用__all__属性可避免在相互引用时的命名冲突 二、在包(假设pkgA,pkgA是一个文件夹)的__init__.py中意为导出包里的模块 例:pkgA/__init__.py __all__=["modualA","modualB"] from modualA import class1,class2 from modualB import fun1,class3 使用:from pkgA import * 以上语句即执行了pkgA下的__init__.py,导入两个模块,和这两模块下的函数和类
- sys
# The content of file F:\test\test.py as follows: import sys print sys.argv print sys.path[0] # Run it in different path C:\ > python F:\test\test.py ['F:\test\test.py'] ['F:\test\test.py'] F:\ > python test\test.py ['test\test.py'] ['F:\test\test.py'] # So, argv[0] is the same as the first arg of command totally, on matter relative or absolute path # but path[0] will fill the relative path to absolute one
* Get absolute path of script: os.path.split(os.path.realpath(__file__))[0]