您的位置:

包含python之shutil模块的词条

本文目录一览:

Python shutil 模块

shutil 可以看作 sh + util,即 shell 工具之意,该模块提供了一些针对文件和文件夹的高级操作,如:拷贝、删除、移动等,shutil 模块是对 os 模块的补充。

copyfileobj(fsrc, fdst, length=16*1024)

复制对象 fsrc 的内容到 fdst,如果 fdst 不存在则自动创建,length 表示缓冲大小,如果是负数表示直接复制,默认为值为 16*1024。示例如下:

shutil.copyfile(src, dst, *, follow_symlinks=True)

复制文件 src 的内容到 dst 并返回 dst,如果 dst 不存在则自动创建,src 和 dst 是字符串类型的路径名,如果 src 和 dst 指向同一个文件,抛出 SameFileError。示例如下:

copymode(src, dst, *, follow_symlinks=True)

复制文件 src 的权限到 dst,src 和 dst 是字符串类型的路径名,如果 follow_symlinks 为 False 且 src 和 dst 都是符号链接,将修改 dst 符号链接文件而非源文件的权限。示例如下:

copystat(src, dst, *, follow_symlinks=True)

复制 src 的权限、最后访问时间、最后修改时间以及标志到 dst,src 和 dst 是字符串类型的路径名,可以是文件或目录,在Linux平台上还会复制扩展属性。示例如下:

copy(src, dst, *, follow_symlinks=True)

复制文件 src 的内容和权限到 dst,dst 可以是文件或文件夹,如果是文件,函数的返回值就是 dst,如果是文件夹,函数的返回值就是 src 的文件名与 dst 的路径拼接,src 和 dst 都是字符串类型,如果 dst 指向一个文件夹,则创建与 src 同名的新文件。示例如下:

copy2(src, dst, *, follow_symlinks=True)

该方法会保留 src 的所有元数据(如创建时间、修改时间等),其他与 copy() 相同,当 follow_symlinks 为 False 且 src 为软链接时,dst 将作为软链接被创建并拷贝 src 的所有元数据到 dst。示例如下:

ignore_patterns(*patterns)

创建并返回一个函数,可传递到 copytree() 中作为 ignore 参数的值,忽略满足匹配模式的文件和目录。示例如下:

copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, ignore_dangling_symlinks=False)

递归复制以 src 为根目录的整个目录树,返回目标目录 dst,dst 必须是不存在的目录,它和它不存在的父目录都将被创建,使用 copystat() 复制目录元数据,使用 copy2() 复制文件内容和元数据。

示例如下:

rmtree(path, ignore_errors=False, onerror=None)

删除目录,path 必须指定一个目录。示例如下:

move(src, dst, copy_function=copy2)

移动文件或目录到目标位置,如果目标位置 dst 是一个存在的目录,将 src 移动到 dst 路径下。示例如下:

disk_usage(path)

检测磁盘使用信息,返回值为元组。示例如下:

which(cmd, mode=os.F_OK | os.X_OK, path=None)

返回 cmd 调用的可执行文件路径,没有返回 None。mode:用于判断文件是否存在或可执行,path:cmd 的查找路径。示例如下:

chown(path, user=None, group=None)

改变指定 path 的所有者和所属组,user 和 group 参数,可以是系统上的用户名、组名或 uid/gid,至少需要传递其中一个参数。

make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, dry_run=0, owner=None, group=None, logger=None)

创建归档文件,并返回归档文件的名称。

看下示例:

get_archive_formats()

返回支持的归档格式列表,列表中的每个元素是 (name, description) 形式的元组。示例如下:

register_archive_format(name, function, extra_args=None, description=’’)

注册一个格式名并绑定到一个压缩时使用的程序,function 是用于解包存档文件的可调用函数。

unregister_archive_format(name)

从支持的归档格式中移除 name。

unpack_archive(filename, extract_dir=None, format=None)

解压归档文件。filename:归档文件名称;extract_dir:归档文件解压的目标位置;format:使用指定格式的解压器解压归档文件。

register_unpack_format(name, extensions, function, extra_args=None, description=’’)

注册格式为 name 的解压器。

unregister_unpack_format(name)

从支持的解压格式中移除 name。

get_unpack_formats()

返回支持的解压格式列表,列表中的每个元素是 (name, extensions, description) 形式的元组。

get_terminal_size()

查询终端大小。示例如下:

python里面shutil是什么?

shutil 是高级的文件,文件夹,压缩包处理模块。

1.shutil.copyfileobj(fsrc, fdst[, length])

将文件内容拷贝到另一个文件中

import shutil

shutil.copyfileobj(open('old.xml','r'), open('new.xml', 'w'))

2.shutil.copyfile(src, dst)

拷贝文件

shutil.copyfile('f1.log', 'f2.log')

3.shutil.copymode(src, dst)

仅拷贝权限。内容、组、用户均不变

shutil.copymode('f1.log', 'f2.log')

4.shutil.copystat(src, dst)

仅拷贝状态的信息,包括:mode bits, atime, mtime, flags

shutil.copystat('f1.log', 'f2.log')

5.shutil.copy(src, dst)

拷贝文件和权限

shutil.copy('f1.log', 'f2.log')

6.shutil.copy2(src, dst)

拷贝文件和状态信息

shutil.copy2('f1.log', 'f2.log')

7.shutil.ignore_patterns(*patterns)

shutil.copytree(src, dst, symlinks=False, ignore=None)

递归的去拷贝文件夹

shutil.copytree('folder1', 'folder2', ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

shutil.copytree('f1', 'f2', symlinks=True, ignore=shutil.ignore_patterns('*.pyc', 'tmp*'))

8.shutil.rmtree(path[, ignore_errors[, onerror]])

递归的去删除文件

shutil.rmtree('folder1')

9.shutil.move(src, dst)

递归的去移动文件,它类似mv命令,其实就是重命名。

shutil.move('folder1', 'folder3')

10.shutil.make_archive(base_name, format,...)

创建压缩包并返回文件路径,例如:zip、tar

创建压缩包并返回文件路径,例如:zip、tar

base_name: 压缩包的文件名,也可以是压缩包的路径。只是文件名时,则保存至当前目录,否则保存至指定路径,

如:www                        =保存至当前路径

如:/Users/wupeiqi/www =保存至/Users/wupeiqi/

format: 压缩包种类,“zip”, “tar”, “bztar”,“gztar”

root_dir: 要压缩的文件夹路径(默认当前目录)

owner: 用户,默认当前用户

group: 组,默认当前组

logger: 用于记录日志,通常是logging.Logger对象

python shutil模块函数copyfile和copy的区别

shutil.copyfile( src, dst) 从源src复制到dst中去。当然前提是目标地址是具备可写权限。抛出的异常信息为IOException. 如果当前的dst已存在的话就会被覆盖掉

shutil.move( src, dst) 移动文件或重命名

shutil.copymode( src, dst) 只是会复制其权限其他的东西是不会被复制的

shutil.copystat( src, dst) 复制权限、最后访问时间、最后修改时间

shutil.copy( src, dst) 复制一个文件到一个文件或一个目录

shutil.copy2( src, dst) 在copy上的基础上再复制文件最后访问时间与修改时间也复制过来了,类似于cp –p的东西

shutil.copy2( src, dst) 如果两个位置的文件系统是一样的话相当于是rename操作,只是改名;如果是不在相同的文件系统的话就是做move操作

shutil.copytree( olddir, newdir, True/Flase)

把olddir拷贝一份newdir,如果第3个参数是True,则复制目录时将保持文件夹下的符号连接,如果第3个参数是False,则将在复制的目录下生成物理副本来替代符号连接

shutil.rmtree( src ) 递归删除一个目录以及目录内的所有内容

说说在 Python 中如何复制、移动、改名以及删除文件或文件夹

要实现复制、移动、改名以及删除文件或文件夹,需要用到 shutil 模块,shutil 是 shell util 的简写形式,表示 shell 工具。

调用 shutil.copy(source, destination) 来实现复制文件或文件夹功能,依据 destination 进行区分:

运行结果:

注意: 指定复制的文件夹必须存在,否则会抛出 FileNotFoundError。

shutil 的 copytree(source, destination) 方法会复制整个文件夹,包括它所包含的所有文件夹和文件。source

指定源文件夹,destination 指定新的文件夹。source 和 destination 入参都是字符串。该函数会返回新文件夹的路径。destination 如果不存在,会自动创建。请看下例:

运行结果:

shutil.move(source, destination) 方法会将路径 source 处的文件移动到路径 destination,并返回新位置的绝对路径的字符串。

如果 destination 指向一个文件夹, source 处的文件将移动到 destination 中, 并保持原来的文件名。

运行结果:

注意:

os 模块中的函数,可以实现删除一个文件或一个空文件夹。而 shutil 更强大,使用它可以删除一个非空文件夹!

注意: 因为是永久删除,所以使用这些函数一定要小心!建议调试程序时, 先注释掉这些删除方法,

然后加上 print(), 把要被删除的文件打印出来,确认后,再执行。

打印出来的文件列表确认无误后,再执行 os.unlink(filename) 执行删除操作。

send2trash 模块会将文件夹或文件发送到计算机的回收站。首先,安装它:

安装成功后,调用 send2trash.send2trash 方法,就可以把文件夹或文件发送到计算机的回收站。请看下例:

建议使用 send2trash.send2trash() 函数来删除文件或文件夹,因为以后还可以从回收站还原。但这样做,不

会释放磁盘空间。如果我们还是希望程序释放磁盘空间, 就要用 os 和 shutil 来删除文件和

文件夹(记得使用之前提出的 print 技巧)。还有一点需要注意, send2trash() 函数只能将文件送到回收站, 但不能从回收站中恢复文件。

如何用python删除一个文件

使用Python删除文件有多种方法,但是最好的方法如下:

os.remove()删除文件

os.unlink()删除文件

shutil.rmtree()删除目录及其下面所有内容

pathlib.Path.unlink()在Python3.4及更高版本中用来删除单个文件pathlib模块。

os.remove()删除文件

Python中的OS模块提供了与操作系统进行交互的功能。OS属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便捷式方法。

python中的os.remove()方法用于删除文件路径。此方法无法删除目录。如果指定的路径是目录,则该方法将引发OSError。

注意:可以使用os.rmdir()删除目录。

使用os.unlink()删除Python文件

os.unlink()是os.remove()的别名。在Unix OS中,删除也称为unlink。

注意:所有功能和语法与os.unlink()和os.remove()相同。它们都用于删除Python文件路径。两者都是Python标准库的os模块中执行删除功能的方法。

它有两个名称,别名:os.unlink()和os.remove()。

为同一个函数提供两个别名的可能原因是,该模块的维护者认为,许多程序员可能会从C的底层编辑转向Python,其中库函数和底层系统调用称为unlink(),而其他人则可能会使用rm命令或shell脚本来简化语言。

使用shutil.rmtree()删除Python文件

shutil.rmtree():删除指定的目录,所有子目录和所有文件。此功能特别危险,因为它无需检查即可删除所有内容。结果,您可以使用此功能轻松丢失数据。

rmtree()是shutil模块下的一种方法,该方法以递归方式删除目录及其内容。

使用pathlib.Path.unlink()删除文件

pathlib模块在Python3.4及更高版本中可用。如果要在Python2中使用此模块,可以使用pip进行安装。pathlib提供了一个面向对象的界面,用于处理不同操作系统的文件系统路径。

要使用pathlib模块删除文件,请创建一个指向该文件的Path对象,然后对该对象调用unlink()方法。

Python其实很简单 第十六章 目录管理

为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容。通过前面一章的介绍,我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中。

16.1路径

路径通常用一个字符串来表示,可以按照路径信息定位到一个目录或文件。如:“C:UsersAdministratorPictures1.jpg”这个信息可以非常方便的找到这个图片文件,“C:UsersAdministratorPictures”这个信息可以帮助我们找到更多的图片文件。

这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样。

在Python中,可以导入 os模块 来进行目录操作。

1、获取当前工作目录getcwd()函数

例:

import os

print(os.getcwd())

运行结果:

C:UsersAdministratorAppDataLocalProgramsPythonPython38

这个路径是当前Python IDLE所在的地址。

2、获取文件的绝对路径abspath()函数

abspath()函数是os模块的子模块path提供的一个函数。用法举例如下:

import os

print(os.path.abspath(r'test.txt'))

运行结果:

C:UsersAdministratorAppDataLocalProgramsPythonPython38 est.txt

16.2 目录操作类函数

1、判断目录是否存在exists()函数

exists()函数是os模块的子模块path中的函数。使用方法举例如下:

import os

print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))

输出结果:

True

2、创建目录mkdir()函数和makedirs()函数

mkdir()函数和makedirs()函数都是由os模块提供的,下面举例说明用法和区别。

例1:

import os

path='d:test'

if not os.path.exists(path):

os.makedirs(path)

print('该文件目录创建成功!')

如果目录d: est已存在,则不再创建;若不存在,则创建。

例2:

import os

path='d:testtest1test11'

if not os.path.exists(path):

os.makedirs(path)

print('该文件目录创建成功!')

虽然目录d: est已存在,但可以在其下继续创建子目录。上面的代码可以成功地创建d: est est1 est11目录。

mkdir()函数和makedirs()函数用法基本一样,不同之处在于mkdir()函数只能能创建一级目录。

3、删除目录函数rmdir()函数

rmdir()函数是由os模块提供的。

例如:通过上面的例子已经建立了d: est est1 est11目录,现在去删除子目录test11(此子目录为空目录),代码如下:

import os

os.rmdir('d:testtest1test11')

如果要删除的目录非空(其下还包含有文件或文件夹),则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的)。譬如d: est目录下含有有子目录,则不能对其进行如下删除操作。

import os

os.rmdir('d:test')

此时,会出现如下错误提示:

Traceback (most recent call last):

File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in

os.rmdir('d:test')

OSError: [WinError 145] 目录不是空的。: 'd:test'

4、删除非空目录函数rmtree()函数

rmtree()函数是由Python内置的标准模块shutil提供的,可以删除目录及目录下的文件和子目录。如删除d: est目录及其下的子目录和文件,可用如下代码:

import shutil

shutil.rmtree('d:test')

5、遍历目录walk()函数

walk()函数是由os模块提供的。

语法格式:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

其中,top是所要遍历的目录的地址;topdown为可选参数,为 True时自上而下遍历 目录,为False时自下而上遍历目录,默认值为True;onerror为可选参数,用于指定异常处理方式,默认为忽略;followlinks为可选参数,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。

该函数的返回值为一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。

例:遍历d: est目录及其子目录下的所有子目录和文件:

d: est目录及其下的子目录和文件

import os

path='d:test'

tups=os.walk(path) # 函数walk()的返回值为三元组

for root,dirs,files in tups: # 遍历这个三元组

for name in dirs: #遍历存放目录值的元组

print('dir:',os.path.join(root,name))

for name in files: #遍历存放文件名值的元组

print('file:',os.path.join(root,name))

运行结果如下:

dir: d: est est1

dir: d: est est1 est11

dir: d: est est1新建文件夹

file: d: est est1新建文本文档.txt

file: d: est est1 est11新建文本文档.txt

包含python之shutil模块的词条

2022-11-14
包含python详解json模块的词条

本文目录一览: 1、python的json模块 2、Python模块的几种类型简介 3、【Python】浅谈python中的json python的json模块 json.load不是什么文件都能打开

2023-12-08
包含python使用笔记24的词条

2022-11-21
包含python常用模块之四的词条

2022-11-12
包含python模块之os的词条

2022-11-09
Python 中的shutil模块

2022-07-24
Python shutil模块使用

2023-05-10
深入浅出shutil模块python

2023-05-19
python学习之笔记(python的笔记)

2022-11-10
包含pythonjsondump的词条

本文目录一览: 1、【Python】浅谈python中的json 2、Python用json模块时怎么才能用dump存数据时自动换行呢 3、python 用json.dumps处理字典后如何还原? 4

2023-12-08
python之random模块(python中的random

2022-11-09
包含python对比json的词条

本文目录一览: 1、用python依次比较2个文件夹内的JSON文件的差异? 2、【Python】浅谈python中的json 3、python3,如何对比2个结构一样的json? 用python依次

2023-12-08
python常用模块之sys,python类模块

2022-11-19
python的pathlib包,python pathlib

2022-11-22
包含python模块之base64的词条

2022-11-10
包含python之mysql交互的词条

2022-11-10
包含python实现海龟绘图的词条

2022-11-08
python的用法笔记本(笔记本学python)

2022-11-16
python随笔之(Python笔记)

2022-11-09
包含python基础之认识的词条

2022-11-12