📅  最后修改于: 2023-12-03 14:53:49.084000             🧑  作者: Mango
在编写Python脚本时,您可能需要将一个文件夹中的多个文件复制到另一个文件夹中。在本指南中,我们将介绍如何使用Python复制多个文件。
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()
函数。
除了使用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模块复制文件。