在Python中复制多个文件

129 投票
8 回答
259639 浏览
提问于 2025-04-16 02:15

如何用Python把一个文件夹里的所有文件复制到另一个文件夹里。我已经有了源路径和目标路径,都是字符串形式。

8 个回答

31

看看Python文档中的shutil,特别是copytree这个命令。

如果目标文件夹已经存在,可以试试:

shutil.copytree(source, destination, dirs_exist_ok=True)
40

如果你不想复制整个文件夹(包括里面的子文件夹等),可以使用 glob.glob("path/to/dir/*.*") 来获取所有文件名的列表。然后你可以遍历这个列表,使用 shutil.copy 来逐个复制每个文件。

for filename in glob.glob(os.path.join(source_dir, '*.*')):
    shutil.copy(filename, dest_dir)
167

你可以使用 os.listdir() 来获取源目录中的文件,使用 os.path.isfile() 来检查这些文件是否是普通文件(在 *nix 系统中也包括符号链接),然后用 shutil.copy 来进行复制。

下面的代码只会把源目录中的普通文件复制到目标目录(我假设你不想复制任何子目录)。

import os
import shutil
src_files = os.listdir(src)
for file_name in src_files:
    full_file_name = os.path.join(src, file_name)
    if os.path.isfile(full_file_name):
        shutil.copy(full_file_name, dest)

撰写回答