,,Python标准库shutil用法实例详解

,,Python标准库shutil用法实例详解

本文主要介绍了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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: