在Python标准库的shutil模块中,已定义了许多用于对文件和目录进行hgh级操作的功能。
此功能将文件复制到相同或其他目录中的指定文件。该函数的第一个参数是现有文件的字符串表示形式。第二个参数是结果文件或目录的名称。如果是目录,则使用相同的名称来处理文件。不保留原始文件的元数据。
>>> import shutil >>> shutil.copy("hello.py","newdir/") 'newdir/hello.py'
此功能与功能类似,copy()
不同之处在于它保留了源文件的元数据。例如,结果文件的日期修改属性将类似于原始文件。
>>> shutil.copy2('person.py', 'newdir/') 'newdir/person.py'
该函数的两个字符串参数代表文件名,这意味着原始文件将以指定的名称复制到同一目录中。
>>> shutil.copyfile('start.py', 'end.py') 'end.py'
copyfileobj()
该函数的参数是文件对象,而不是代表文件的字符串。文件对象是通过open()
方法获得的。原始文件应具有读取权限,而生成的文件应具有写权限打开。
>>> f1=open('hello.py','r') >>> f2=open('python.py','w') >>> shutil.copyfileobj('f1', 'f2') >>> shutil.copyfileobj(f1, f2)
此功能以递归方式将文件和目录从目录移至其他目录。
>>> shutil.move('hello.py', 'newdir/') 'newdir/hello.py'
此功能以递归方式将一个目录中的文件和子目录复制到另一目录。两个参数的名称必须为字符串。第二个参数名称的目录不应更早存在。要复制单个文件,内部使用了copy2()函数。
>>> shutil.copytree('dir1','dir2') 'dir2'
此功能删除指定目录中的文件和子目录。
>>> shutil.rmtree('dir2') >>> shutil.move('hello.py', 'newdir/') 'newdir/hello.py'
此函数检索给定目录的使用情况统计信息。
>>> shutil.disk_usage('c:\\python36\\dir1') usage(total=245681352704, used=84932993024, free=160748359680)
该函数返回可执行文件的路径。
>>> shutil.which('calc') 'C:\\WINDOWS\\system32\\calc.EXE'
此功能在根目录中构建文件的存档(zip或tar)。
>>> root_dir='newdir' >>> shutil.make_archive("newdirarch","zip",root_dir) 'C:\\python36\\newdirarch.zip'
此功能提供了所有受支持的存档格式。
>>> shutil.get_archive_formats() [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('xztar', "xz'ed tar-file"), ('zip', 'ZIP file')]
此功能提取给定存档中的文件。第二个参数是要在其中提取文件的目录。如果未提供,则在当前目录中执行解压缩。
>>> shutil.unpack_archive('newdirarch.zip','newdir')