os模块 shutil模块
2017-03-27 本文已影响35人
狗狗胖妞
os模块
os.name 字符串指示你正在使用的平台。比如对于Windows,它是'nt',对于Linux/Unix用户,它是 'posix'
os.sep 路径分隔符
os.linesep 换行符
os.curdir 返回当前目录 ('.')
os.remove(path) 用来删除一个文件
os.getcwd() 得到当前工作所在路径
os.chdir("C:\\users")
print(os.getcwd())
#打印:C:\users
os.listdir(path)
os.makedirs(path)
os.chdir(path)
os.system(command) 运行shell命令
os.path
os.path.exists() 是否存在
os.path.isfile() 和os.path.isdir()函数分别检验给出的路径是一个文件还是目录
os.path.getsize(name) 获得文件大小,如果name是目录返回0L
os.path.splitext() 分离文件名与扩展名
os.path.split(path) 分割
os.path.abspath(name) 获得绝对路径=1+2
os.path.dirname(path) 返回文件路径 1
os.path.basename(path) 返回文件名 2
import os,sys
print(os.path.abspath(__file__)) #打印绝对路径
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_DIR) #添加环境变量
os.path.join(path,name) 连接目录与文件名或目录
shutil模块
shutil模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。
import shutil
shutil.copyfile("tt.txt","11.txt") #拷贝文件
shutil.copy("test.txt","11.txt") #拷贝文件和权限
shutil.copymode("tt.txt","11.txt") #仅拷贝权限
shutil.copy2( "src", "dst") #在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西
shutil.move("test.txt","tt.txt") #移动文件或重命名
shutil.copytree( "olddir", "newdir", True/Flase) #把olddir拷贝一份newdir,如果第3个参数是True,则复制
目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接
shutil.rmtree( "src" ) #递归删除一个目录以及目录内的所有内容
打包压缩
shutil.make_archive(base_name,format,...)
创建压缩包并返回文件路径
- base_name:压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
如:www =>保存至当前路径
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi下 - format:压缩包种类,“zip”, “tar”, “bztar”,“gztar”
- root_dir: 要压缩的文件夹路径(默认当前目录)
- owner: 用户,默认当前用户
- group: 组,默认当前组
- logger: 用于记录日志,通常是logging.Logger对象
ret = shutil.make_archive("backup","tar",root_dir="/home/www/") #将/home/www目录下的文件进行备份,生成backup.tar的文件,其中tar为后缀,www为文件名