实现文件拷贝函数,函数仅为一个参数,利用字符串格式化分析方法自动生成新文件名,分块实现文件拷贝
时间: 2024-10-27 11:06:04 浏览: 27
在Python中,你可以使用内置的`shutil`库来实现文件的复制,同时通过字符串格式化和分块读写来处理大型文件。这里是一个示例函数,它接受两个参数:源文件路径和目标文件名生成规则:
```python
import shutil
import os
def copy_file(src_path, dst_template):
"""
拷贝文件并将新文件名按照dst_template自动生成
:param src_path: 原始文件路径
:param dst_template: 新文件名模板,可以包含占位符{filename}表示原文件名,如'dest_{filename}'
"""
filename = os.path.basename(src_path)
dst_name = dst_template.format(filename=filename)
dst_path = os.path.join(os.path.dirname(src_path), dst_name)
# 分块读取源文件和写入目标文件,处理大文件
block_size = 1024 * 1024 # 1MB大小的块
with open(src_path, 'rb') as src, open(dst_path, 'wb') as dst:
while True:
data = src.read(block_size)
if not data:
break
dst.write(data)
return dst_path
# 使用示例
src_path = "source_file.txt"
dst_template = "backup_{}"
new_dst = copy_file(src_path, dst_template)
print(f"Copy completed! New file at: {new_dst}")
```
在这个例子中,`copy_file`函数将源文件名替换到`dst_template`中的占位符`{filename}`,生成新文件名。然后,我们采用分块的方式读取和写入文件,这样可以有效地处理大文件。
阅读全文