python的shutil模块11个常用功能详解创建、删除、查看等方法,还提供了对文件和目录的路径操作。shutil模块提供了移动、复制、压缩、解压等操作。它只是对os的补充,配合使用基本可以完成所有的文件操作。是一个非常重要的模块。加载包importshutil查看包中所有方法print(dir(shutil))['chown','collections','copy','copy2','copyfile','copyfileobj','copymode','copystat','copytree','disk_usage','errno','fnmatch','get_archive_formats','get_terminal_size','get_unpack_formats','getgrnam','getpwnam','ignore_patterns','make_archive','move','nt','os','register_archive_format','register_unpack_format','rmtree','stat','sys','unpack_archive','unregister_archive_format','unregister_unpack_format','which']01,copy()描述:copy文件语法:shutil.copy(fsrc,path),返回值:返回复制的路径fsrc:源文件路径:目标地址shutil.copy('test.csv','C:/Users/zhengxiang.wzx/Desktop/')'C:/Users/zhengxiang.wzx/Desktop/test.csv'02,copy2()描述:复制文件和状态信息语法:shutil.copy(fsrc,path),返回值:返回复制的路径fsrc:源文件路径:目标地址shutil.copy2('test.csv','C:/Users/zhengxiang.wzx/Desktop/')'C:/Users/zhengxiang.wzx/Desktop/test.csv'03,copyfileobj()说明:复制一个文件的内容到另一个文件,如果目标文件本身有内容,源文件的内容会覆盖掉目标文件的内容。如果该文件不存在,它将自动创建一个。语法:shutil.copyfileobj(fsrc,fdst[,length=16*1024])fsrc:源文件fdst:复制到fdst文件length:缓冲区大小,即fsrcimportshutilf1=open('file.txt','r')f2=open('file_copy.txt','w+')shutil.copyfileobj(f1,f2,length=16*1024)04.copyfile()描述:复制一个文件的内容到另一个文件中,目标文件不需要存在语法:shutil.copyfile(src,dst,follow_symlinks)src:源文件路径dst:复制到dst文件,如果dst文件不存在,会生成一个dst文件生成;如果存在,则Overridefollow_symlinks:设置为True时,如果src是符号链接,则将其复制为文件;如果设置为False,将复制符号链接。默认值为真。file_1不存在,一个shutil.copyfile('file_0.csv','file_1.csv')'file_1.csv'file_2存在,直接copyshutil.copyfile('file_0.csv','file_2.csv')'file_2.csv'05.copytree()说明:复制整个目录文件,不需要的文件类型不能复制语法:shutil.copytree(oripath,despath,ignore=shutil.ignore_patterns("*.xls","*.doc"))parameter:oripath:"sourcepath"despath:"destinationpath"ignore:shutil.ignore_patterns()是对内容进行忽略过滤,忽略对应的内容。importshutil,ospath1=os.path.join(os.getcwd(),"kaggle")path1'C:\\Users\\wuzhengxiang\\Desktop\\Python知识点汇总\\kaggle'bbb和ccc文件夹不能存在,会自动创建path2=os.path.join(os.getcwd(),"bbb","ccc")path2'C:\\Users\\wuzhenxiang\\Desktop\\Python知识点总结\\bbb\\ccc'忽略"abc.txt","bcd.txt"不复制shutil.copytree(path1,path2,ignore=shutil.ignore_patterns("abc.txt","bcd.txt"))06、copymode()说明:复制权限,前提是目标文件存在,否则会报错。将src文件权限复制到dst文件。文件内容、所有者和组不受影响语法:shutil.copymode(src,dst)src:源文件路径dst:复制权限到dst文件,dst路径必须是真实路径,文件必须存在,否则会Filenotfounderrorfollow_symlinks:当设置为False时,src,dst都是软链接,软链接权限可以复制。如果设置为True,则视为普通文件复制权限。默认值为真。Python3新参数shutil.copymode("file_0.csv","file_1.csv")07,move()说明:移动文件或文件夹语法:shutil.move(src,dst)os.chdir('C:/Users/wuzhenxiang/Desktop/Python知识点总结')os.getcwd()shutil.move('file_1.csv','C:/Users/wuzhenxiang/Desktop/股票数据分析')'C:/Users/wuzhengxiang/Desktop/StockDataAnalysis\\file_1.csv'08,disk_usage()说明:查看磁盘使用信息,计算磁盘总存储量、已用存储量、剩余存储量信息。语法:shutil.disk_usage('盘符')返回值:元组shutil.disk_usage('D:')usage(total=151199412224,used=41293144064,free=109906268160)total,totalstorage:151199412224/1024/1024/1024=140GBUsed,used:41293144064/1024/1024/1024=38GBfree,剩余容量:109906268160/1024/1024/1024=102GB09,make_archive()说明:压缩打包语法:make_archive(base_name,format,root_dir_dir=None,base=None,verbose=0,dry_run=0,owner=None,group=None,logger=None)压缩包base_name:压缩包的文件名,或者压缩包的路径。如果只是文件名,则保存到当前目录,否则保存到指定路径file)packandcompressfile_1.csvinthecurrentdirectoryshutil.make_archive('file_1.csv','gztar',root_dir='C:/Users/wuzhenxiang/Desktop/股票数据分析')'C:\\Users\\wuzhengxiang\\Desktop\\StockDataAnalysis\\file_1.csv.tar.gz'09,get_archive_formats()描述:获取支持的压缩文件格式。目前支持的有:tar、zip、gztar、bztar。Python3xztar语法支持另一种格式:unpack_archive(filename,extract_dir=None,format=None)filename:文件路径extract_dir:解压到的文件夹路径。文件夹可能不存在,会自动生成格式:解压格式,默认为None,解压格式会根据扩展名自动选择importshutil,oszip_path=os.path.join(os.getcwd(),"file_1.csv.tar")extract_dir=os.path.join(os.getcwd(),"aaa")shutil.unpack_archive(zip_path,extract_dir)11.rmtree()描述:递归删除文件语法:shutil.rmtree(path[,ignore_errors[,onerror]])删除文件夹shutil.rmtree('C:/Users/wuzhenxiang/Desktop/Python知识点总结/test2')
