标签:
提供了大量的文件的高级操作,特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作
import shutil shutil.copyfile(‘test.xml‘,‘testxml.xml‘) #拷贝文件 shutil.copyfile(‘test.xml‘,‘testxml2.xml‘) #拷贝文件 shutil.copyfileobj(open(‘test.xml‘,‘r‘),open(‘test1.xml‘,‘w‘)) #拷贝文件内容 shutil.copymode(‘test.xml‘,‘testxml.xml‘) #将test.xml文件的权限拷贝给testxml.xml shutil.copy(‘test.xml‘,‘test3.xml‘) #拷贝文件和权限 shutil.copy2(‘test.xml‘,‘test4.xml‘) #拷贝文件和状态 结果: -rwxrwxrwx 1 root staff 690 6 19 11:13 test.xml #源文件 -rwxrwxrwx 1 fuzengjie staff 690 6 22 17:50 testxml.xml* #copyfile 的结果,又经过了copymode处理,权限改变,状态改变 -rw-r--r-- 1 fuzengjie staff 690 6 22 17:50 testxml2.xml #copyfile 的结果,元数据没有拷贝 -rw-r--r-- 1 fuzengjie staff 690 6 22 17:50 test1.xml #copyfileobj 的结果,元数据没有拷贝**** -rwxrwxrwx 1 fuzengjie staff 690 6 22 17:50 test3.xml* #copy的结果,权限没变,状态改变 -rwxrwxrwx 1 fuzengjie staff 690 6 19 11:13 test4.xml* #copy2的结果,权限和状态都没变
>>> shutil.copytree(‘day07‘,‘test‘, ignore=shutil.ignore_patterns(‘*.pyc‘, ‘tmp*‘)) #拷贝day07目录为test ‘test‘
shutil.rmtree("test")
shutil.make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0,
dry_run=0, owner=None, group=None, logger=None)
>>> shutil.make_archive("test",‘tar‘,root_dir=‘day07‘) ‘/Users/fuzengjie/Git/gitlab/study/code/test.tar‘ >>> shutil.make_archive("test",‘zip‘,root_dir=‘day07‘) ‘/Users/fuzengjie/Git/gitlab/study/code/test.zip‘
shutil 对压缩包的处理是调用 ZipFile 和 TarFile 两个模块来进行的。下面介绍两个模块的使用
import zipfile z = zipfile.ZipFile("test.zip",‘w‘) #创建压缩文件 z.write(‘newtest.xml‘) #将需要压缩的文件写入压缩文件 z.write(‘test.xml‘) z.close() z = zipfile.ZipFile("test.zip",‘r‘) #读压缩文件 file_list = z.namelist() #获取压缩文件中的文件列表 z.extract(‘test1.xml‘) #解压单个文件 #z.extractall() #解压所有文件
import tarfile t = tarfile.open("test.tar","w") t.add("test.xml",arcname="aaaaaa") #添加文件到压缩文件中,并取名aaaaa t.add("test.xml",arcname="bbb") #添加文件到压缩文件中,并取名bbb t.close() t = tarfile.open("test.tar",‘r‘) s = t.getnames() #获取压缩文件中的文件列表 t.extract(‘bbb‘) #解压bbb文件 #t.extractall() #解压所有文件 print(s)
标签:
原文地址:http://www.cnblogs.com/pycode/p/shutil.html