python shutil move出现重名文件怎么处理
时间: 2024-01-07 22:03:13 浏览: 315
当使用 `shutil.move()` 时,如果目标路径已经存在同名文件,会抛出 `shutil.Error` 异常。为了解决这个问题,可以考虑在调用 `shutil.move()` 之前检查目标路径是否存在同名文件,如果存在,则根据需要进行处理。
以下是一种可能的解决方案:
```python
import os
import shutil
src_path = "/path/to/source/file"
dst_path = "/path/to/destination/file"
if os.path.exists(dst_path):
# 目标路径已经存在同名文件,根据需要进行处理
# 例如,重命名原文件并移动到目标路径
base, ext = os.path.splitext(dst_path)
i = 1
while os.path.exists(dst_path):
dst_path = f"{base}_{i}{ext}"
i += 1
shutil.move(src_path, dst_path)
else:
# 目标路径不存在同名文件,直接移动
shutil.move(src_path, dst_path)
```
在上面的代码中,首先判断目标路径是否存在同名文件。如果存在同名文件,则根据需要重命名原文件,并移动到目标路径。在这个例子中,重命名的方法是在文件名的基础上添加一个下划线和一个数字,直到找到一个目标路径不存在同名文件的文件名。如果目标路径不存在同名文件,则直接移动原文件到目标路径。这种方法可以避免 `shutil.Error` 异常,并保证原文件能够成功移动到目标路径。
阅读全文