使用paramiko,重命名文件和更改目录失败。为什么?

时间:2018-08-22 14:44:19

标签: python paramiko

我必须在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')

???

任何帮助将不胜感激。

1 个答案:

答案 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')