复制、移动和重命名文件和目录
Python附带了shutil 模块
。shutil
是shell实用程序的缩写。 它为文件提供了许多高级操作,来支持文件和目录的复制,归档和删除。 在本节中,你将学习如何移动和复制文件和目录。
复制文件:
shutil 提供了一些复制文件的函数。 最常用的函数是 shutil.copy()
和 shutil.copy2()
。 使用shutil.copy()
将文件从一个位置复制到另一个位置,请执行以下操作:
import shutil
src = 'path/to/file.txt'
dst = 'path/to/dest_dir'
shutil.copy(src, dst)
shutil.copy(src,dst) 会将文件 src 复制到 dst 中指定的位置。 如果 dst 是文件,则该文件的内容将替换为 src 的内容。 如果 dst 是目录,则 src 将被复制到该目录中。 shutil.copy() 仅复制文件的内容和文件的权限。 其他元数据(如文件的创建和修改时间)不会保留。
要在复制时保留所有文件元数据,请使用 shutil.copy2()
:
import shutil
src = 'path/to/file.txt'
dst = 'path/to/dest_dir'
shutil.copy2(src, dst)
复制目录
虽然 shutil.copy() 只复制单个文件,但 shutil.copytree() 将复制整个目录及其中包含的所有内容。 shutil.copytree(src,dest)
接收两个参数:源目录和将文件和文件夹复制到的目标目录。
以下是如何将一个文件夹的内容复制到其他位置的示例:
import shutil
dst = shutil.copytree('data_1', 'data1_backup')
print(dst) # data1_backup
在此示例中,.copytree()
将 data_1 的内容复制到新位置 data1_backup 并返回目标目录。 目标目录不能是已存在的。 它将被创建而不带有其父目录。 shutil.copytree() 是备份文件的一个好方法。
移动文件和目录
要将文件或目录移动到其他位置,请使用 shutil.move(src,dst)
。
src 是要移动的文件或目录,dst 是目标:
import shutil
dst = shutil.move('dir_1/', 'backup/')
print(dst) # 'backup'
如果 backup/ 存在,则 shutil.move(‘dir_1/’,‘backup/’) 将 dir_1/ 移动到 backup/ 。 如果 backup/ 不存在,则 dir_1/ 将重命名为 backup 。
重命名文件和目录
Python包含用于重命名文件和目录的os.rename(src,dst)
:
import os
os.rename('first.zip', 'first_01.zip')
上面的行将 first.zip 重命名为 first_01.zip 。 如果目标路径指向目录,则会抛出 OSError 。
重命名文件或目录的另一种方法是使用 pathlib 模块中的 rename():
from pathlib import Path
data_file = Path('data_01.txt')
data_file.rename('data.txt')