Python实现文件与文件夹复制功能详解

不晚
不晚
发布时间:2026-10-13| 6人浏览过
原创

本文介绍了使用Python进行文件和文件夹复制的具体实现方法。通过定义copy_file函数利用文件读写操作实现单文件复制,并基于os模块构建copy_mulu函数,结合递归调用处理嵌套文件夹结构。文章提供了完整的代码示例及注释,帮助开发者掌握Python中基本的文件与目录复制技巧。

Python文件与文件夹复制功能实现

本文分享了Python中实现文件及文件夹复制的函数代码,供读者参考学习。

文件复制功能的实现

具体代码及详细注释如下所示:

单文件复制函数


# 文件复制函数
def copy_file(file1,file2):
  '''
  将文件一复制到文件二
  :param file1:
  :param file2:
  :return:
  '''
  # 首先打开源文件file1和目标文件file2
  f1 = open(file1,'r')
  f2 = open(file2,'w')
  # 循环读取写入,实现文件的复制
  content = f1.readline()
  while len(content)>0:
    f2.write(content)
    content = f1.readline()
  f1.close()
  f2.close()
# 代码测试,代码调用
copy_file('./a.txt','./b.txt')    # 使用相对路径

文件夹(目录)复制功能的实现

相关代码及注释说明如下:

文件夹递归复制函数


# 目录(文件夹)复制函数
'''
首先需要引入 os 模块
'''
import os
def copy_mulu(dir1,dir2):
  '''
  复制文件夹
  :param dir1:
  :param dir2:
  :return:
  '''
  # 获取被复制文件夹中的所有文件信息
  dlist = os.listdir(dir1)
  # 创建目标文件夹(即为被复制之后的文件夹,文件夹不能自动生成所以要手动创建,文件可以自动生成)
  os.mkdir(dir2)
  # 遍历出dir1中的所有文件并且复制
  for f in dlist:
    # 为遍历出的文件添加目录路径(一个完整的文件=目录的路径+文件名)
    file1 = os.path.join(dir1,f)   # 源文件
    file2 = os.path.join(dir2, f)   # 目标文件
    # 判断file1是不是文件
    if os.path.isfile(file1):
      # 调用上面写好的文件复制函数进行文件复制
      copy_file(file1,file2)
    # 判断file1是不是文件夹
    if os.path.isdir(file1):
      # 如果是文件夹则递归调用(自己调用自己,继续循环判断)
      copy_mulu(file1,file2)

# 代码测试,代码调用
copy_mulu('文件夹','复制后文件夹')

将上述两个功能合并后的完整代码如下:

完整合并代码示例


# -*- coding: utf-8 -*-
# @File  : 文件和文件夹复制函数.py
# @Author : zh
# @Date  : 2020/2/5
# @Software: PyCharm
# 文件复制函数
def copy_file(file1,file2):
  '''
  将文件一复制到文件二
  :param file1:
  :param file2:
  :return:
  '''
  # 首先打开源文件file1和目标文件file2
  f1 = open(file1,'r')
  f2 = open(file2,'w')
  # 循环读取写入,实现文件的复制
  content = f1.readline()
  while len(content)>0:
    f2.write(content)
    content = f1.readline()
  f1.close()
  f2.close()
# 代码测试,代码调用
copy_file('./a.txt','./b.txt')    # 使用相对路径

# 目录(文件夹)复制函数
'''
首先需要引入 os 模块
'''
import os
def copy_mulu(dir1,dir2):
  '''
  复制文件夹
  :param dir1:
  :param dir2:
  :return:
  '''
  # 获取被复制文件夹中的所有文件信息
  dlist = os.listdir(dir1)
  # 创建目标文件夹(即为被复制之后的文件夹,文件夹不能自动生成所以要手动创建,文件可以自动生成)
  os.mkdir(dir2)
  # 遍历出dir1中的所有文件并且复制
  for f in dlist:
    # 为遍历出的文件添加目录路径(一个完整的文件=目录的路径+文件名)
    file1 = os.path.join(dir1,f)   # 源文件
    file2 = os.path.join(dir2, f)   # 目标文件
    # 判断file1是不是文件
    if os.path.isfile(file1):
      # 调用上面写好的文件复制函数进行文件复制
      copy_file(file1,file2)
    # 判断file1是不是文件夹
    if os.path.isdir(file1):
      # 如果是文件夹则递归调用(自己调用自己,继续循环判断)
      copy_mulu(file1,file2)

# 代码测试,代码调用
copy_mulu('文件夹','复制后文件夹')

以上内容为本文的全部分享,希望能为读者的学习提供便利,欢迎继续支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。