我必须在SFTP服务器上处理文件,完成后,使用Paramiko将文件移至存档目录。但是,如果档案目录中已经存在该文件,则我想同时重命名该文件。我具有检测存档中现有文件和调整名称的基础。基本上,最终通话看起来像:
client.rename('/main-path/file.txt', '/main-path/archive/file_1.txt')
或
client.posix_rename('/main-path/file.txt', '/main-path/archive/file_1.txt')
这些命令可以在某些服务器上正常运行。在其他服务器上,我从paramiko收到“ Errno 2”错误。
我要解决这个问题吗?也许我需要首先将文件重命名到位?
client.rename('/main-path/file.txt', '/main-path/file_1.txt')
然后
client.rename('/main-path/file_1.txt', '/main-path/archive/file_1.txt')
???
任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用操作系统检查文件是否存在
import os
list_element= os.listdir("/main-path/archive")
if "file.txt" in list_element:
client.posix_rename('/main-path/file.txt', '/main-path/archive/file_1.txt')
else:
client.posix_rename('/main-path/file.txt', '/main-path/archive/file.txt')