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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了说说在 Python 中如何复制、移动、改名以及删除文件或文件夹相关的知识,希望对你有一定的参考价值。

参考技术A

要实现复制、移动、改名以及删除文件或文件夹,需要用到 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 进行创建并写入新文件。这一章节,讲了对如何用 Python 对文件进行进一步的操作,包括:

  • 移动,复制,删除文件
  • 改名
  • 压缩文件

[shutil]移动,复制,删除文件:

模块:shutil 模块的一些函数,具有复制,移动,删除文件的。
shutil 指的是 shell untility( shell 工具)
复制文件和文件夹:shutil.copy(source,destination)

[shutil]文件和文件夹的移动

移动:shutil.move(source,destination)

[os]永久删除文件和文件夹

  • 删除:os.unlink(path): 删除 path 处的文件
  • 删除空文件夹/文件:os.rmdir(path),删除空文件夹
  • 删除 path 的文件夹:os.rmtree(path)

[os]遍历文件树

使用 os.walk() 函数:这个函数接受一个文件夹路径的字符串值,然后返回三个值:

  1. 当前文件夹名称的字符串
  2. 当前文件夹中子文件夹的字符串列表
  3. 大跟前文件夹中文件的列表

[send2trash]用 send2trash 模块删除到垃圾桶

模块:import send2trash
调用:send2trash.send2trash("filename")

从 zipfile 压缩文件

模块: import zipfile
创建 ZipFIle 对象:zipfile.ZipFile("path")
ZipFile 对象的一些方法: 

  1. namelist():返回这个 ZIP 文件中所包含的所有文件和文件夹
  2. getInfo():返回一个 ZipIndo 对象,其有自己的属性,比如 file_size,compress_size
  3. extractall() :方法从 ZIP 文件中解压缩所有的文件和文件夹,放到当前目录中。
  4. extrat("string“,path):需要一个参数,这个参数为 namelist 中返回的字符串列表中的一个,将所指定的文件解压缩到所指定的 path 上。










以上是关于说说在 Python 中如何复制、移动、改名以及删除文件或文件夹的主要内容,如果未能解决你的问题,请参考以下文章

MySQL增删改插 及表的复制及改名

windows下如何把文件夹中所有子文件夹内的同名文件移动到一个文件夹中,且移动时,同名文件自动改名

Python 编程快速上手 第九章 组织文件

如何在 python 中复制和移动另一个文件夹或目录? [复制]

python之shutil模块

说说在 Linux 中如何修改某个文件拥有者