Python 中的高级文件操作 (shutil)
Python 标准库的 shutil 模块中定义了许多用于对文件和目录进行高级操作的函数。
copy()
此函数将文件复制到相同或其他目录中的指定文件。函数的第一个参数是现有文件的字符串表示形式。第二个参数是结果文件或目录的名称。如果它是一个目录,则文件将以相同的名称复制到其中。原始文件的元数据不会被保留。
>>> import shutil
>>> shutil.copy("hello.py","newdir/")
'newdir/hello.py'copy2()
此函数类似于 copy() 函数,除了它保留源文件的元数据。例如,结果文件的修改日期属性将与原始文件相似。
>>> shutil.copy2('person.py', 'newdir/')
'newdir/person.py'copyfile()
此函数的两个字符串参数表示文件名。这意味着原始文件将以指定名称复制到同一目录中。
>>> 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)move()
此函数递归地将文件和目录从一个目录移动到另一个目录。
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'copytree()
此函数递归地将一个目录中的文件和子目录复制到另一个目录。两个参数的名称必须是字符串。第二个参数名称的目录之前不应该存在。要复制单个文件,内部使用 copy2() 函数。
>>> shutil.copytree('dir1','dir2')
'dir2'rmtree()
此函数删除指定目录中的文件和子目录。
>>> shutil.rmtree('dir2')
>>> shutil.move('hello.py', 'newdir/')
'newdir/hello.py'disk_usage()
此函数检索给定目录的使用统计信息。
>>> shutil.disk_usage('c:\python36\dir1')
usage(total=245681352704, used=84932993024, free=160748359680)which()
此函数返回可执行文件的路径。
>>> shutil.which('calc')
'C:\WINDOWS\system32\calc.EXE'make_archive()
此函数构建根目录中文件的存档(zip 或 tar)。
>>> root_dir='newdir'
>>> shutil.make_archive("newdirarch","zip",root_dir)
'C:\python36\newdirarch.zip'get_archive_formats()
此函数提供所有支持的存档格式。
>>> 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')]unpack_archive()
此函数提取给定存档中的文件。第二个参数是要提取文件的目录。如果未给出,则在当前目录中执行解包。
>>> shutil.unpack_archive('newdirarch.zip','newdir')
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP