首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[教程]Python复制目录及文件大小全解析:轻松掌握文件拷贝技巧

发布于 2025-07-09 10:48:43
0
1208

引言在Python中,复制目录和文件是一项常见的操作。无论是进行数据备份、迁移文件还是简单地复制一份文件,掌握正确的文件拷贝技巧至关重要。本文将详细解析Python中复制目录及文件的方法,并探讨如何获...

引言

在Python中,复制目录和文件是一项常见的操作。无论是进行数据备份、迁移文件还是简单地复制一份文件,掌握正确的文件拷贝技巧至关重要。本文将详细解析Python中复制目录及文件的方法,并探讨如何获取文件大小,帮助读者轻松掌握文件拷贝技巧。

一、复制文件

复制单个文件在Python中相对简单,我们可以使用shutil模块中的copy()函数来实现。

1.1 使用shutil.copy()

import shutil
# 源文件路径
source = 'source_path/file.txt'
# 目标文件路径
destination = 'destination_path/file.txt'
# 复制文件
shutil.copy(source, destination)

1.2 使用shutil.copy2()

shutil.copy2()函数与copy()类似,但它会尝试保留文件的元数据(如修改时间)。

import shutil
# 源文件路径
source = 'source_path/file.txt'
# 目标文件路径
destination = 'destination_path/file.txt'
# 复制文件,保留元数据
shutil.copy2(source, destination)

二、复制目录

复制目录稍微复杂一些,但同样可以使用shutil模块中的函数来实现。

2.1 使用shutil.copytree()

shutil.copytree()函数可以复制整个目录及其内容。

import shutil
# 源目录路径
source_dir = 'source_path/directory'
# 目标目录路径
destination_dir = 'destination_path/directory'
# 复制目录
shutil.copytree(source_dir, destination_dir)

2.2 使用os.walk()

如果需要更细粒度的控制,可以使用os.walk()结合循环来手动复制目录。

import os
import shutil
# 源目录路径
source_dir = 'source_path/directory'
# 目标目录路径
destination_dir = 'destination_path/directory'
# 确保目标目录存在
if not os.path.exists(destination_dir): os.makedirs(destination_dir)
# 遍历源目录
for dirpath, dirnames, filenames in os.walk(source_dir): # 获取目标路径 target_dir = dirpath.replace(source_dir, destination_dir, 1) # 确保目标路径存在 if not os.path.exists(target_dir): os.makedirs(target_dir) # 复制文件 for filename in filenames: shutil.copy(os.path.join(dirpath, filename), os.path.join(target_dir, filename))

三、获取文件大小

在文件拷贝过程中,了解文件大小是非常有用的信息。Python中可以通过os.path.getsize()函数来获取文件大小。

import os
# 文件路径
file_path = 'path/to/file.txt'
# 获取文件大小(字节)
file_size = os.path.getsize(file_path)
print(f"文件大小: {file_size} 字节")
# 获取文件大小(KB)
file_size_kb = file_size / 1024
print(f"文件大小: {file_size_kb} KB")
# 获取文件大小(MB)
file_size_mb = file_size / (1024 ** 2)
print(f"文件大小: {file_size_mb} MB")

四、总结

本文详细介绍了Python中复制文件和目录的方法,并探讨了如何获取文件大小。通过使用shutil模块和os模块,我们可以轻松地完成文件拷贝任务。掌握这些技巧,无论是在日常开发中还是在数据处理中,都将大大提高我们的工作效率。

评论
一个月内的热帖推荐
csdn大佬
Lv.1普通用户

452398

帖子

22

小组

841

积分

赞助商广告
站长交流