本文主要介绍了Python标准库shutil的使用方法,并结合实例分析了shutil库对文件和文件夹的各种常见操作技巧及相关注意事项。有需要的可以参考一下。
本文演示了Python标准库shutil的用法。分享给你,供你参考,如下:
Shutil模块提供了许多关于文件和文件集合的高级操作,尤其是支持文件复制和删除的功能。
文件夹与文件操作
copyfileobj(fsrc, fdst, length=16*1024):将fsrc文件的内容复制到fdst文件,长度为每次读取fsrc的长度,作为缓冲区大小。
Fsrc:源文件
Fdst:复制到fdst文件
Length:缓冲区大小,即fsrc每次读取的长度。
导入技能
f1=打开(' file.txt ',' r ')
f2=打开(' file_copy.txt ',' a ')
shutil.copyfileobj(f1,f2,长度=1024)
copyfile(src, dst):将src文件的内容复制到dst文件
Src:源文件路径
Dst:复制到dst文件。如果dst文件不存在,将生成一个dst文件;如果存在,就会被覆盖。
Follow_symlinks:设置为True时,如果src是软连接,则作为文件复制;如果设置为False,则复制软连接。默认值为True。Python3新参数
导入技能
shutil.copyfile('file.txt ',' file_copy.txt ')
copymode(src, dst):将src文件权限复制到dst文件。内容、所有者和群组不受影响。
Src:源文件路径
Dst:将权限复制到dst文件。dst路径必须是真实路径,并且文件必须存在。否则,将报告找不到文件的错误。
Follow_symlinks:设置为False时,src和dst为软链接,可以复制软链接权限;如果设置为True,它将被视为普通文件复制权限。默认值为True。Python3新参数
导入技能
shutil.copymode('file.txt ',' file_copy.txt ')
copystat(src, dst):复制权限、上次访问时间、上次修改时间和src到dst的标志。内容、所有者和群组不受影响。
Src:源文件路径
Dst:将权限复制到dst文件。dst路径必须是真实路径,并且文件必须存在。否则,将报告找不到文件的错误。
Follow_symlinks:设置为False时,src和dst都是软链接,可以复制软链接权限、上次访问时间、上次修改时间和src的标志。如果设置为True,将被视为正常的文件复制权限。默认值为True。Python3新参数
导入技能
shutil.copystat('file.txt ',' file_copy.txt ')
copy(src, dst):将文件src复制到dst。Dst可以是一个目录,和src同名的文件都会在这个目录下创建。如果此目录中存在同名文件,将会报告一个错误,指出同名文件已经存在。权限将被复制。本质上,copyfile和copymode是连续调用的。
Src:源文件路径
Dst:复制到dst文件夹或文件
Follow_symlinks:设置为False时,src和dst为软链接,可以复制软链接权限;如果设置为True,它将被视为正常的文件复制权限。默认值为True。Python3新参数
输入shutil,os
shutil.copy('file.txt ',' file_copy.txt ')
#或者
shutil.copy('file.txt ',os.path.join(os.getcwd(),' copy '))
copy2(src, dst):将文件src复制到dst。Dst可以是一个目录,和src同名的文件都会在这个目录下创建。如果此目录中存在同名文件,将会报告一个错误,指出同名文件已经存在。权限、上次访问时间、上次修改时间和src的标志被复制到dst。实际上,copyfile和copystat方法是连续调用的。
Src:源文件路径
Dst:复制到dst文件夹或文件
Follow_symlinks:设置为False时,src和dst都是软链接,可以复制软链接权限、上次访问时间、上次修改时间和src的标志。如果设置为True,将被视为正常的文件复制权限。默认值为True。Python3新参数
输入shutil,os
shutil.copy2('file.txt ',' file_copy.txt ')
#或者
shutil.copy2('file.txt ',os.path.join(os.getcwd(),' copy '))
ignore_patterns(*patterns):忽略模式,用来配合copytree()方法。传输的文件将被忽略,不会被复制。
模式:文件名,元组
copytree(src, dst, symlinks=False, ignore=None):复制文档树,并将src文件夹中的所有内容复制到dst文件夹中。
Src:源文件夹
Dst:复制到dst文件夹,这将是自动创建的。请确保该文件夹不存在,否则将会报告错误。
Symlinks:是否复制软链接,True表示复制软链接,False表示不复制,软链接将作为文件复制,默认为False。
Ignore:忽略模式,可以传入ignore_patterns()
Copy_function:复制文件的方法,可以传入一个可执行的处理函数。默认值是copy2,Python3有了新的参数。
Ignore _ dangling _ symlinks:当sysmlinks设置为False时,在复制指向已删除文件的软链接时会报告错误。如果希望消除此异常,可以将该值设置为True。默认值为false,Python 3增加了新的参数。
导入shutil,os
folder1=os.path.join(os.getcwd(),' aaa ')
# bbb和ccc文件夹可能都不存在,将自动创建。
folder2=os.path.join(os.getcwd(),' bbb ',' ccc ')
#忽略' abc.txt ',' bcd.txt ',不要复制。
shutil.copytree(folder1,folder2,ignore=shut il . ignore _ patterns(' ABC . txt ',' bcd.txt ')
rmtree(path, ignore_errors=False, onerror=None):移除文档树并删除文件夹目录。
Ignore_errors:忽略错误,默认值为False。
错误:定义一个错误处理函数,并传递一个可执行的处理函数,该函数接收三个参数:function、path和excinfo。
导入shutil,os
folder1=os.path.join(os.getcwd(),' aaa ')
shutil.rmtree(文件夹1)
move(src, dst):将src移动到dst目录。如果dst目录不存在,效果相当于将src重命名为dst。如果dst目录存在,src文件夹的所有内容将被移动到下面的目录中。
Src:源文件夹或文件
Dst:移动到dst文件夹,或将文件重命名为dst文件。如果src是文件夹,dst是文件,将会报告错误。
Copy_function:复制文件的方式,可以传入一个可执行的处理函数。默认情况下,copy2和Python3会添加新的参数。
导入shutil,os
#例1,将src文件夹移动到dst文件夹下,如果bbb文件夹不存在,则变成重命名操作。
folder1=os.path.join(os.getcwd(),' aaa ')
folder2=os.path.join(os.getcwd(),' bbb ')
shutil.move(folder1,folder2)
#例2,将src文件移动到dst文件夹下,如果bbb文件夹不存在,则变成重命名操作。
file1=os.path.join(os.getcwd(),' aaa.txt ')
folder2=os.path.join(os.getcwd(),' bbb ')
shutil.move(文件1,文件夹2)
#示例3,将src文件重命名为dst文件(dst文件已存在并将被覆盖)
file1=os.path.join(os.getcwd(),' aaa.txt ')
file2=os.path.join(os.getcwd(),' bbb.txt ')
shutil.move(文件1,文件2)
disk_usage(path):获取当前目录所在硬盘的使用情况。Python3新方法
路径:文件夹或文件路径。在windows中必须是文件夹路径,在linux中可以是文件路径和文件夹路径。
导入shutil.os
path=os.path.join(os.getcwd(),' aaa ')
info=shutil.disk_usage(路径)
print(info) #用法(总计=95089164288,已用=7953104896,免费=87136059392)
chown(path, user=None, group=None):修改路径指向的文件或文件夹的所有者或组。Python3新方法
路径:路径
User: owner,传递的User的值必须为true,否则不会报告该用户。
Group: group,传递的组的值必须为true,否则不会报告这样的组。
导入shutil,os
path=os.path.join(os.getcwd(),' file.txt ')
shutil.chown(路径,用户='root ',组='root ')
which(cmd, mode=os.F_OK | os.X_OK, path=None):获取给定cmd命令的可执行文件的路径。Python3新方法
导入技能
info=shutil.which('python3 ')
print(info) # /usr/bin/python3
归档操作
Shutil还提供了创建和读取压缩和存档文件的高级程序。内部实现主要依靠zipfile和tarfile模块。
make_archive(base_name, format, root_dir, …):生成压缩文件
Base_name:压缩文件的文件名。不允许扩展名,因为扩展名将根据压缩格式生成。
格式:压缩格式
Root_dir:压缩配方文件夹。
导入shutil,os
base _ name=OS . path . join(OS . getcwd(),' aaa ')
format='zip '
root _ dir=OS . path . join(OS . getcwd(),' aaa ')
#压缩root_dir文件夹中的内容以生成aaa.zip文件。
shutil.make_archive(基本名称,格式,根目录)
get_archive_formats():获取支持的压缩文件格式。目前支持tar,zip,gztar,bztar。Python3中还支持一种格式xztar。
unpack_archive(filename, extract_dir=None, format=None):减压操作。Python3新方法
文件名:文件路径
Extract_dir:要提取到的文件夹路径。该文件夹可能不存在,将自动生成。
格式:解压格式,默认为无,会根据扩展名自动选择解压格式。
导入shutil,os
zip _ path=OS . path . join(OS . getcwd(),' aaa.zip ')
extract _ dir=OS . path . join(OS . getcwd(),' aaa ')
shutil.unpack_archive(zip_path,extract_dir)
get_unpack_formats():获取支持的解压缩文件格式。目前支持tar,zip,gztar,bztar,xztar。Python3新方法
更多关于舒蒂尔:https://docs.python.org/3/library/shutil.html
对更多Python相关内容感兴趣的读者可以查看我们的专题:《Python文件与目录操作技巧汇总》、《Python文本文件操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》和《Python入门与进阶经典教程》。
希望本文对Python编程有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。