📌  相关文章
📜  将多个文件从一个文件夹复制到另一个文件夹 - Python (1)

📅  最后修改于: 2023-12-03 14:53:49.084000             🧑  作者: Mango

将多个文件从一个文件夹复制到另一个文件夹 - Python

在编写Python脚本时,您可能需要将一个文件夹中的多个文件复制到另一个文件夹中。在本指南中,我们将介绍如何使用Python复制多个文件。

使用shutil模块复制多个文件

Python中的shutil模块提供了一种简单的方法来复制文件和文件夹。要使用shutil模块,需要导入它并调用其copy()copy2()函数。

import shutil
import os

source_folder = '/path/to/source/folder'
destination_folder = '/path/to/destination/folder'

for filename in os.listdir(source_folder):
    file_path = os.path.join(source_folder, filename)
    if os.path.isfile(file_path):
        shutil.copy(file_path, destination_folder)

此代码会将源文件夹中的每个文件复制到目标文件夹中。 如果想要完全复制文件,例如复制文件的修改时间和权限等metadata,可以使用copy2()函数代替copy()函数。

使用os模块和shutil模块复制多个文件

除了使用shutil模块,还可以直接使用os模块,并结合shutil模块复制多个文件。使用os模块,您可以获取源文件夹中的所有文件名,然后使用shutil模块复制这些文件。

import os
import shutil

source_folder = '/path/to/source/folder'
destination_folder = '/path/to/destination/folder'

# 获取源文件夹中的所有文件名
file_names = os.listdir(source_folder)

# 循环遍历文件名,并复制每个文件
for file_name in file_names:
    source_file = os.path.join(source_folder, file_name)
    destination_file = os.path.join(destination_folder, file_name)
    # 如果文件是一个普通文件,就使用shutil模块复制文件
    if os.path.isfile(source_file):
        shutil.copy(source_file, destination_file)

此代码将使用os模块获取源文件夹中的所有文件名。然后,通过循环遍历每个文件名,并使用shutil模块复制每个文件。 如果文件是一个普通文件,就使用shutil模块复制文件。

包含文件过滤器的复制

如果想要从源文件夹中仅复制特定类型的文件,例如.txt文件,可以使用以下代码。

import os
import shutil

source_folder = '/path/to/source/folder'
destination_folder = '/path/to/destination/folder'

# 获取源文件夹中的所有以.txt结尾的文件名
file_names = [fn for fn in os.listdir(source_folder) if fn.endswith('.txt')]

# 循环遍历文件名,并复制每个文件
for file_name in file_names:
    source_file = os.path.join(source_folder, file_name)
    destination_file = os.path.join(destination_folder, file_name)
    # 如果文件是一个普通文件,就使用shutil模块复制文件
    if os.path.isfile(source_file):
        shutil.copy(source_file, destination_file)

此代码将使用os模块获取源文件夹中的所有以.txt结尾的文件名。然后,通过循环遍历每个文件名,并使用shutil模块复制每个文件。如果文件是一个普通文件,就使用shutil模块复制文件。