# !/usr/bin/env Python3
# -*- coding: utf-8 -*-
# @Author   : zsc
# @FILE     : shutil用法.py
# @Time     : 2019/7/4 16:34
# @Software : PyCharm
import os
import shutil"""
主要作用与拷贝文件用的
"""
# 1.shutil.copyfileobj(文件1,文件2):将文件1的数据覆盖copy给文件2 , 原有内容会被覆盖, 需要打开文件
"""
copyfileobj(fsrc, fdst, length=16*1024): 将fsrc文件内容复制至fdst文件,length为fsrc每次读取的长度,用做缓冲区大小
fsrc: 源文件
fdst: 复制至fdst文件
length: 缓冲区大小,即fsrc每次读取的长度
"""
f1 = open("1.txt", "r", encoding="utf-8")
f2 = open("1.txt", "w", encoding="utf-8")   # 目标文件 1.txt 是不需要创建
shutil.copyfileobj(f1, f2, length=2014)
f1.close()
f2.close()# 2.shutil.copyfile(文件1,文件2): 1.txt的数据覆盖copy给3.txt  不用打开文件,直接用文件名进行覆盖copy,   比第一个好
"""
copyfile(src, dst): 将src文件内容复制至dst文件
shutil.copyfile("file.txt","file_copy.txt")
src: 源文件路径
dst: 复制至dst文件,若dst文件不存在,将会生成一个dst文件;若存在将会被覆盖
follow_symlinks:设置为True时,若src为软连接,则当成文件复制;如果设置为False,复制软连接。默认为True。Python3新增参数
"""
shutil.copyfile("1.txt","3.txt")  # 目标文件 3.txt 是不需要创建# 3.shutil.copystat(文件1,文件):只拷贝了权限  拷贝权限
"""
copystat(src, dst): 将权限,上次访问时间,上次修改时间以及src的标志复制到dst。文件内容,所有者和组不受影响
src: 源文件路径
dst: 将权限复制至dst文件,dst路径必须是真实的路径,并且文件必须存在,否则将会报文件找不到错误
follow_symlinks:设置为False时,src, dst皆为软连接,可以复制软连接权限、上次访问时间,上次修改时间以及src的标志,
如果设置为True,则当成普通文件复制权限。默认为True。Python3新增参数
"""
shutil.copystat("4.txt", "4_copy.txt")# 4、shutil.copy(文件1,文件2):拷贝文件和权限都进行copy
"""
copy(src, dst): 将文件src复制至dst。dst可以是个目录,会在该目录下创建与src同名的文件,若该目录下存在同名文件,将会报错提示已经存在同名文件。权限会被一并复制。本质是先后调用了copyfile与copymode而已
src:源文件路径
dst:复制至dst文件夹或文件
follow_symlinks:设置为False时,src, dst皆为软连接,可以复制软连接权限,如果设置为True,则当成普通文件复制权限。默认为True。Python3新增参数
"""
shutil.copy("4.txt","file_copy.txt")   # 直接拷贝当前文件目录
# 或者
shutil.copy("1.txt", os.path.join(os.getcwd(), 'files', "copy.txt"))  # 拷贝文件夹下面# 5.shutil.copy2(文件1,文件2):拷贝了文件和状态信息。
"""
copy2(src, dst): 将文件src复制至dst。dst可以是个目录,会在该目录下创建与src同名的文件,若该目录下存在同名文件,将会报错提示已经存在同名文件。权限、上次访问时间、上次修改时间和src的标志会一并复制至dst。 本质是先后调用了copyfile与copystat方法而已
src:源文件路径
dst:复制至dst文件夹或文件
follow_symlinks:设置为False时,src, dst皆为软连接,可以复制软连接权限、上次访问时间,上次修改时间以及src的标志,如果设置为True,则当成普通文件复制权限。默认为True。Python3新增参数
"""
shutil.copy2("4.txt", "file_copy2.txt")
# 或者
shutil.copy2("4.txt", os.path.join(os.getcwd(), "files", "copy2.txt"))# 7.shutil.copytree(源目录,目标目录):可以递归copy多个目录到指定目录下。
"""
shutil.copytree(src, dst, symlinks=False, ignore=None)
递归的去拷贝文件
例如:copytree(source, destination, ignore=ignore_patterns('*.pyc', 'tmp*'))
"""
folder1 = os.path.join(os.getcwd(), "files")
# bbb与ddd文件夹都可以不存在,会自动创建,  层级拷贝, 已经存在会报错
folder2 = os.path.join(os.getcwd(), "bbb", "ddd")
# 将"abc.txt","bcd.txt"忽略,不复制   shutil.ignore_patterns(*patterns)
shutil.copytree(folder1, folder2, ignore=shutil.ignore_patterns("abc.txt", "bcd.txt"))# 8、shutil.move(folder3, folder4)   移动文件夹
# 示例一,将src文件夹移动至dst文件夹下面,如果bbb文件夹不存在,则变成了重命名操作
folder3 = os.path.join(os.getcwd(), "bbb")
folder4 = os.path.join(os.getcwd(), "QQQ")
shutil.move(folder3, folder4)# 示例二,将src文件移动至dst文件夹下面,如果bbb文件夹不存在,则变成了重命名操作
file1 = os.path.join(os.getcwd(), "4.txt")
folder4 = os.path.join(os.getcwd(), "QQQ")
shutil.move(file1, folder4)
# # 示例三,将src文件重命名为dst文件(dst文件存在,将会覆盖)
file1 = os.path.join(os.getcwd(), "aaa.txt")
file2 = os.path.join(os.getcwd(), "bbb.txt")
shutil.move(file1, file2)# 10.shutil.make_archive():可以压缩,打包文件。
import shutil
shutil.make_archive("3.txt", "zip", os.path.join(os.getcwd(), "a"))
"""
创建压缩包并返回文件路径,例如:zip、tar
base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,
如:www                        =>保存至当前路径
如:/Users/wupeiqi/www =>保存至/Users/wupeiqi/
format:  压缩包种类,“zip”, “tar”, “bztar”,“gztar”
root_dir:    要压缩的文件夹路径(默认当前目录)
owner:   用户,默认当前用户
group:   组,默认当前组
logger:  用于记录日志,通常是logging.Logger对象
"""

参考链接:

https://www.cnblogs.com/sui776265233/p/9225417.html

https://www.jb51.net/article/145522.htm

shutil模块的基本使用相关推荐

  1. Python中os和shutil模块实用方法集锦

    Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...

  2. python中shutil模块_python文件、文件夹、压缩包处理模块-shutil模块-阿里云开发者社区...

    shutil模块 高级的文件.文件夹.压缩包 处理模块 本节内容基本在linux下python交互环境实现 复制移动文件.文件夹 将文件内容拷贝到另一个文件中,可以部分内容 格式如下: ``` shu ...

  3. python使用os和shutil模块进行文件创建,删除,移动,复制,重命名

    python使用os和shutil模块进行文件创建,删除,移动,复制,重命名 文章目录: 1 os模块的使用 1.1 os不带path 1.1.1 os.sep 属性:返回系统路径分隔符 1.1.2 ...

  4. python中shutil模块的用法_python中的os,shutil模块的定义以及用法

    #os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为'\\'os.name 字符串指示你正在使用的平台.比如对于Windows,它是'nt',而对于Linux/Unix用户 ...

  5. python的shutil模块是内置的_Python之shutil模块11个常用函数详解,python内置函数是什么...

    Python之shutil模块11个常用函数详解,python内置函数是什么 shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查 ...

  6. 【Python入门】Python之shutil模块11个常用函数详解

    shutil 是 Python 中的高级文件操作模块,与os模块形成互补的关系,os主要提供了文件或文件夹的新建.删除.查看等方法,还提供了对文件以及目录的路径操作.shutil模块提供了移动.复制. ...

  7. python创建模块文件夹_python文件、文件夹、压缩包处理模块-shutil模块

    shutil模块 高级的文件.文件夹.压缩包 处理模块 本节内容基本在linux下python交互环境实现 复制移动文件.文件夹 将文件内容拷贝到另一个文件中,可以部分内容 格式如下: ``` shu ...

  8. shutil模块,为什么说它是os模块的兄弟模块?

    本文大纲 os模块是Python标准库中一个重要的模块,里面提供了对目录和文件的一般常用操作.而Python另外一个标准库--shutil模块,它作为os模块的补充,提供了复制.移动.删除.压缩.解压 ...

  9. Python第二十天 shutil 模块 zipfile tarfile 模块

    Python第二十天  shutil 模块  zipfile   tarfile 模块 os文件的操作还应该包含移动 复制  打包 压缩 解压等操作,这些os模块都没有提供 shutil 模块 shu ...

  10. 随机模块random、os模块、sys模块、shutil模块

    随机模块random 随机模块的用法 >>> random.randrange(1,10) #返回1-10之间的一个随机数,不包括10 >>> random.ran ...

最新文章

  1. R语言绘制分块区域热力图
  2. mongodb用户管理简单记录
  3. 阿里巴巴宣布架构调整;英伟达放大招!重磅发布 ​TensorRT 7 ,支持超千种计算变换;苹果、谷歌和亚马逊罕见结盟……...
  4. java http 1.1_java11新特性HttpClient
  5. ubuntu 14.04 环境下打开xls、pdf与png文件
  6. OpenCv之绘图(笔记03)
  7. java线程基础(一些常见多线程用法)
  8. [转]Handsontable对单元格的操作
  9. Python学习三|列表、字典、元组、集合的特点以及类的一些定义
  10. Linux安装GCC方法—简洁版
  11. notebook打开外部文件_NOTEBOOK文件扩展名 - 什么是.notebook以及如何打开? - ReviverSoft...
  12. 关于彩虹猫病毒的分析
  13. ImportError:cannot import name 'distribute_covar_matrix_to_match_covariance_type'
  14. 三菱plc指令dediv_三菱PLC指令[]学习指导书.ppt
  15. 简述自定义驱动在工业通讯软件开发中的应用
  16. win7计算机无法远程桌面连接,解决win7无法被远程桌面连接教程
  17. Foobar2000使用学习
  18. linux怎么进入dos界面,如何在Linux中运行DOS应用程序
  19. Apple音视频播放器 QuickTime Player7.7.9 专业版
  20. Flutter--使用相机

热门文章

  1. 图解 Spring 循环依赖,写得太好了!
  2. 三星android+5.0,三星TouchWiz终于好看了:多谢安卓5.0
  3. 基于pytorch使用NNI的mnist例子分析(附完整代码)
  4. fabric 智能合约开发详解
  5. 打了辞职报告,领导把我调了个我喜欢的部门,有点不想走了。咋办?
  6. 洛谷 P2939 [USACO09FEB]改造路Revamping Trails
  7. Linux开源存储网络详解
  8. cesium实现动态圆效果之——图片雷达
  9. sklearn scikit-learn
  10. 机器人三种类型的停止