Python | 文件/文件夹的拷贝、删除及重命名等

本文介绍如何使用 python 对文件/文件夹进行拷贝、删除及重命名等。

Last Modified: 2022 / 8 / 12


文章目录

  • 可行库
  • 拷贝
    • open
      • 示例
    • os
      • 示例
    • shutil
      • 方法
      • 示例
    • pathlib
      • 方法
      • 示例
  • 删除
    • os
    • shutil
      • 示例
  • 参考链接


可行库

用于拷贝文件可行的几种第三方库

库名 说明
os
shutil 提供了几个高级函数来支持文件的复制和删除。
pathlib Python 3.4 开始,您可以使用 pathlib 模块,它提供表示面向对象的文件系统路径的类。

它有 Path.write_bytes() 函数,它以字节模式打开指向的文件,向其中写入数据,然后关闭文件。此处不会发生文件元数据的交换。

如果文件已存在于目标位置,这将覆盖该文件。

拷贝

open

示例

实例可参考此处 1

src = 'A.py'
dst = 'B.py'

with open(src, 'r') as f:
    data = f.read()

with open(dst, 'w') as f:
    f.write(data)

# 可以以阅读模式 (`r`)打开源文件并将其内容以写入模式(`w`)打开的目标文件。
# 写入模式在截断文件后打开文件进行写入,如果文件不存在则创建一个。

os

方法 含义
os.system('copy A B') A 文件另存为 B 文件

示例

实例可参考此处 2

  • os.system('copy A B')
os.system('cp A.py Folder/B.py')
# 将当前路径下的 A.py 拷贝至Folder下另存为 B.py

shutil

方法

方法 含义
copy2 如果 dst 是一个文件名,src 内容和文件元数据被复制;
如果 dst 是现有文件,它将被 src 文件替换。
如果 dst 指定一个目录,我们将复制 src 文件到目录 dst。如果目标位置中已存在同名文件,它将被覆盖。

copy2 可以接受目标目录路径并复制文件元数据。
copy()copy2 功能等同,但其无法保留元数据。
copyfile 如果 dst 是一个文件名,src 内容会被复制但元数据则不会被复制。
如果 dst 是现有文件,它将被 src 文件替换。

示例

实例可参考此处 21

  • shutil.copy2(src, dst, *, follow_symlinks=True)
src = 'A.py'
dst = 'Folder'
# dst = 'Folder/B.py'
shutil.copy2(src=src, dst=dst)
# 将当前路径下的 A.py 拷贝到Folder或Folder下另存为 B.py
  • shutil.copyfile(src, dst, *, follow_symlinks=True)
src = 'A.py'
dst = 'Folder/B.py'
shutil.copyfile(src=src, dst=dst)
# 将当前路径下的 A.py 拷贝到Folder下另存为 B.py, 不复制元数据。
# 但是,如果它已经存在,它会覆盖目标文件。

pathlib

方法

方法 含义
write_bytes

示例

实例可参考此处 1

  • write_bytes()
src = pathlib.Path('A.py')
dst = pathlib.Path('Folder/B.py')
dst.write_bytes(src.read_bytes())


删除

一般删除文件时使用 os 库,然后利用 os.remove(path) 即可完成删除,如果删除空文件夹则可使用 os.removedirs(path) 即可, 但是如果需要删除整个文件夹,且文件夹非空时使用 os.removedirs(path) 就会报错了。


os

方法 含义
os.remove(path) 删除文件
os.removedirs(path) 删除空文件夹
os.rmdir(path) 删除空文件夹

shutil

方法 含义
shutil.rmtree(path) 递归删除文件夹,即:删除非空文件夹

示例

shutil.rmtree('/home/Desktop/Folder')
# 将 /home/Desktop/Folder 及其下面的所有文件递归删除


参考链接

%todo:
用Python复制文件的九种方法


  1. 在 Python 中复制文件 ↩︎ ↩︎ ↩︎

  2. Python中复制文件的两种简单方式 ↩︎ ↩︎

你可能感兴趣的:(Linux,python)