time & timedate 模块
time获取时间戳
time.time() 获取当前时间
datetime.datetime.now() 获取当前时间
random 随机模块
random.random() 生成一个0到1的随机浮点数 0<= n <1
random.randrange()
可以从从制定范围内,按指定基数递增的集合中获取一个随机数。如random.randrange(10,100,2),结果相当于从(10,12,14,16....)中获得
random.choice() 从序列中获取一个随机元素
random.sample(参数1,参数2) 从指定序列中随机获取指定长度的片段。
两个参数,第一个参数是序列,第二个参数是制定长度
random.randint(start,end) 随机整数 a<= n <= b
random.uniform() 指定区间取浮点数
os模块
提供对操作系统进行调用的接口。
os.sep:取代操作系统特定的路径分隔符os.name:指示你正在使用的工作平台。比如对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'。os.getcwd:得到当前工作目录,即当前python脚本工作的目录路径。os.getenv()和os.putenv:分别用来读取和设置环境变量os.listdir():返回指定目录下的所有文件和目录名os.remove(file):删除一个文件os.stat(file):获得文件属性os.chmod(file):修改文件权限和时间戳os.mkdir(name):创建目录os.rmdir(name):删除目录os.removedirs(r“c:\python”):删除多个目录os.system():运行shell命令os.exit():终止当前进程os.linesep:给出当前平台的行终止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r' os.path 模块 os.path.split():返回一个路径的目录名和文件名 os.path.isfile()和os.path.isdir()分别检验给出的路径是一个目录还是文件 os.path.existe():检验给出的路径是否真的存在 os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是目录,不是目录就返回false os.path.isfile(name):判断name这个文件是否存在,不存在返回false os.path.exists(name):判断是否存在文件或目录name os.path.getsize(name):或得文件大小,如果name是目录返回0L os.path.abspath(name):获得绝对路径 os.path.isabs():判断是否为绝对路径 os.path.normpath(path):规范path字符串形式 os.path.split(name):分割文件名与目录(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在) os.path.splitext():分离文件名和扩展名 os.path.join(path,name):连接目录与文件名或目录 os.path.basename(path):返回文件名 os.path.dirname(path):返回文件路径sys模块
sys.argv: 实现从程序外部向程序传递参数。
sys.exit([arg]): 程序中间的退出,arg=0为正常退出。
sys.getdefaultencoding(): 获取系统当前编码,一般默认为ascii。
sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为utf8。(见设置系统默认编码 )
sys.getfilesystemencoding(): 获取文件系统使用编码方式,Windows下返回'mbcs',mac下返回'utf-8'.
sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。
sys.platform: 获取当前系统平台。
sys.stdin,sys.stdout,sys.stderr: stdin , stdout , 以及stderr 变量包含与标准I/O 流对应的流对象. 如果需要更好地控制输出,而print 不能满足你的要求, 它们就是你所需要的. 你也可以替换它们, 这时候你就可以重定向输出和输入到其它设备( device ), 或者以非标准的方式处理它们
shutil模块
shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中
1 2 3 import shutil shutil.copyfileobj( open ( 'old.xml' , 'r' ), open ( 'new.xml' , 'w' ))shutil.copyfile(src, dst) 拷贝文件
1 shutil.copyfile( 'f1.log' , 'f2.log' )shutil.copymode(src, dst) 仅拷贝权限。内容、组、用户均不变
1 shutil.copymode( 'f1.log' , 'f2.log' )shutil.copystat(src, dst) 仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
1 shutil.copystat( 'f1.log' , 'f2.log' )shutil.copy(src, dst) 拷贝文件和权限
1 shutil.copy( 'f1.log' , 'f2.log' )shutil.copy2(src, dst) 拷贝文件和状态信息
1 shutil.copy2( 'f1.log' , 'f2.log' )shutil.ignore_patterns(*patterns) shutil.copytree(src, dst, symlinks=False, ignore=None) 递归的去拷贝文件夹
1 2 3 shutil.copytree( 'folder1' , 'folder2' , ignore = shutil.ignore_patterns( '*.pyc' , 'tmp*' )) shutil.copytree( 'f1' , 'f2' , symlinks = True , ignore = shutil.ignore_patterns( '*.pyc' , 'tmp*' ))shutil.rmtree(path[, ignore_errors[, onerror]]) 递归的去删除文件
1 shutil.rmtree( 'folder1' )shutil.move(src, dst) 递归的去移动文件,它类似mv命令,其实就是重命名。
1 shutil.move( 'folder1' , 'folder3' )shutil.make_archive(base_name, format,...)
创建压缩包并返回文件路径,例如:zip、tar
创建压缩包并返回文件路径,例如:zip、tar
base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径, 如:www =>保存至当前路径 如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”root_dir: 要压缩的文件夹路径(默认当前目录)owner: 用户,默认当前用户group: 组,默认当前组logger: 用于记录日志,通常是logging.Logger对象 1 2 3 4 5 6 7 8 #将 /Users/wupeiqi/Downloads/test 下的文件打包放置当前程序目录 import shutil ret = shutil.make_archive( "wwwwwwwwww" , 'gztar' , root_dir = '/Users/wupeiqi/Downloads/test' ) #将 /Users/wupeiqi/Downloads/test 下的文件打包放置 /Users/wupeiqi/目录 import shutil ret = shutil.make_archive( "/Users/wupeiqi/wwwwwwwwww" , 'gztar' , root_dir = '/Users/wupeiqi/Downloads/test' )
shutil 对压缩包的处理是通过调用ZipFile 和 TarFile两个模块来进行的。
1 2 3 4 5 6 7 8 9 10 11 12 import zipfile # 压缩 z = zipfile.ZipFile( 'laxi.zip' , 'w' ) z.write( 'a.log' ) z.write( 'data.data' ) z.close() # 解压 z = zipfile.ZipFile( 'laxi.zip' , 'r' ) z.extractall() z.close() 1 2 3 4 5 6 7 8 9 10 11 12 import tarfile # 压缩 tar = tarfile. open ( 'your.tar' , 'w' ) tar.add( '/Users/wupeiqi/PycharmProjects/bbs2.log' , arcname = 'bbs2.log' ) tar.add( '/Users/wupeiqi/PycharmProjects/cmdb.log' , arcname = 'cmdb.log' ) tar.close() # 解压 tar = tarfile. open ( 'your.tar' , 'r' ) tar.extractall() # 可设置解压地址 tar.close()json &pickle 模块
shelve模块
是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式
xml处理
和json差不多,但json使用起来更简单。
yaml处理
configparser模块
用于生成和修改常见配置文档。
hashlib 模块
用于加密相关操作。
subprocess模块
logging模块
re正则表达式