python复制文件到另一个文件夹中如果重名则重命名
时间: 2023-06-10 09:07:46 浏览: 278
可以使用`shutil`模块中的`copy2()`函数来实现文件复制,并且如果目标文件夹中已经存在同名文件,则会自动重命名。
下面是一个简单的示例代码:
```python
import os
import shutil
def copy_rename(src_file, dst_folder):
# 获取文件名和扩展名
file_name, file_ext = os.path.splitext(os.path.basename(src_file))
# 目标文件路径
dst_file = os.path.join(dst_folder, os.path.basename(src_file))
# 如果目标文件已经存在,则重命名
if os.path.exists(dst_file):
i = 1
while True:
new_name = f"{file_name}_{i}{file_ext}"
new_path = os.path.join(dst_folder, new_name)
if not os.path.exists(new_path):
dst_file = new_path
break
i += 1
# 复制文件
shutil.copy2(src_file, dst_file)
return dst_file
```
使用示例:
```python
src_file = "/path/to/source/file.txt"
dst_folder = "/path/to/destination/folder"
dst_file = copy_rename(src_file, dst_folder)
print(f"复制成功: {src_file} -> {dst_file}")
```
在这个示例中,函数`copy_rename()`接受源文件路径和目标文件夹路径作为参数,并返回目标文件的路径。其中,`os.path.splitext()`函数可以将文件名和扩展名分离出来,`os.path.basename()`函数可以获取文件名(不包含路径)。
如果目标文件已经存在,则在文件名后面加上`_1`、`_2`、`_3`……,直到找到一个不存在的文件名为止。最后,使用`shutil.copy2()`函数复制文件。
阅读全文