首页 > 解决方案 > 使用 python 在 sftp 服务器中移动文件引发异常

问题描述

我已经成功连接到 SFTP 服务器并且可以下载文件了。但是,当我尝试在我的 SFTP 位置将文件从一个位置移动到另一个位置时,file already exist出现错误。但它不存在(我使用 Filezilla 检查)。

我的当前文件夹结构

/
--2019-01
--2019-02
--2019-03
--2019-04
-test_2019_04_15 10:01:01.fil

代码

def moveRawfile(serverConn, newFile):
    system_date = datetime.datetime.now().strftime("%Y-%m")
    folder_name = str(system_date)
    path = '/'
    try :
        serverConn.chdir(folder_name)
    except IOError as e:
        serverConn.mkdir(folder_name, mode=777)

    path = os.path.join(path, folder_name)
    try :
        newpath = os.path.join(path, newFile)
        serverConn.rename(newFile, newpath)  //<______This throws error(File already existing)
    except IOError as e:
        raise e

新路径=/2019-04/test_2019_04_15 10:01:01.fil

新文件=test_2019_04_15 10:01:01.fil

我尝试将此文件移动到2019_04文件夹。文件夹在那里。但是当我尝试移动文件时,它说它已经存在。我无法弄清楚我的代码有什么问题。

标签: pythonpython-2.7

解决方案


我得到的错误响应没有提供有关实际问题的详细信息。

我通过在源文件中添加“/”解决了这个问题。

例如: serverConn.rename('/'+newFile, newpath)


推荐阅读