Python os文件复制用法介绍


本文将从多个方面详细阐述Python os模块中如何进行文件复制操作,包括复制单个文件、复制文件夹及其子文件夹、递归复制、同时复制多个文件等。以下是具体内容:

一、复制单个文件

在Python中使用os模块进行文件复制是一种常见的方式。下面,使用os库进行单个文件的复制操作。具体代码如下:

import os
import shutil

file_path = "source_file.txt"
copy_path = "copy_file.txt"

shutil.copy(file_path, copy_path)

print("文件已复制")

以上代码首先导入了os和shutil模块,文件名和复制文件的路径也被定义了。shutil.copy()方法被用来复制文件到指定的复制路径。最终输出的内容是“文件已复制”。

二、复制文件夹及其子文件夹

如果需要复制整个文件夹以及其中所有子文件夹,则需要使用shutil库的另一个函数shutil.copytree()。具体代码如下:

import os
import shutil

source_path = "source_dir"
copy_path = "copy_dir"

shutil.copytree(source_path, copy_path)

print("文件夹及子文件已复制")

以上代码将整个源文件夹以及其中所有子文件夹复制到指定的目标路径。这里要注意,复制前应该确保目标路径不存在才能进行复制。最终输出的内容是“文件夹及子文件已复制”。

三、递归复制

如果只需要复制文件夹中的内容而不是整个文件夹结构,则可以使用os库的walk函数进行递归遍历。具体代码如下:

import os
import shutil

source_path = "source_dir"
copy_path = "copy_dir"

for dirpath, dirnames, filenames in os.walk(source_path):
    for filename in filenames:
        orig_path = os.path.join(dirpath, filename)
        copy_path = os.path.join(copy_path, filename)
        shutil.copy2(orig_path, copy_path)

print("递归复制已完成")

以上代码通过os.walk()进行了目录的递归遍历,对每一个遍历到的文件都使用shutil.copy2()方法进行复制。最终输出“递归复制已完成”。

四、同时复制多个文件

如果需要同时复制多个文件,则可以使用shutil.copy()方法的多次调用完成。具体代码如下:

import os
import shutil

source_files = ["file1.txt", "file2.txt", "file3.txt"]
copy_dir = "copy_dir"

for file in source_files:
    shutil.copy(file, copy_dir)

print("所有文件已复制")

以上代码使用了一个循环来遍历需要复制的文件列表,并使用shutil.copy()方法进行复制。最终输出的内容是“所有文件已复制”。

总结

本文对于Python os模块中文件复制的操作做了详细的阐述,涉及了单个文件复制、复制文件夹及其子文件夹、递归复制、同时复制多个文件等常见的操作方式。通过这些方法,可以更加方便地进行文件复制操作。

评论关闭