用于将文件上载到远程服务器的Python脚本

时间:2014-05-15 17:29:28

标签: python upload sftp pysftp

我正在开发一个项目,要求我们通过SFTP将vile上传到远程服务器,我们遇到了麻烦。我们尝试了这个youtube guide,但我们遇到了一些问题。

当我们运行脚本时,我们得到一个“没有这样的文件”错误,我们确信文件存在,并且我们已经为python脚本提供了文件的正确名称和位置。

这是我们现在拥有的脚本:

import pysftp as sftp

def sftpTry():
       try:
            s = sftp.Connection(host='babbage.cs.missouri.edu', username ='<username>', password = '<password>')

            remotepath = '~it3001s14grp1/videos/newVideo/new.avi'
            #localpath = '/etc/motion/capture/hello.txt'
            localpath = '/etc/motion/capture/06--2014-05-15---16-16-25.avi'
            s.put(localpath, remotepath)

            s.close()

    except Exception, e:
            print str(e)

sftpTry();

1 个答案:

答案 0 :(得分:1)

您应该使用正斜杠&#34; /&#34;开始您的远程路径。另外,检查您在remotepath中指定的目录。当您登录服务器时(例如使用ssh),您应该尝试在目录中执行pwd。应该完全指定远程路径。

虽然远程路径中确实有文件名,但如果仅指定文件夹的名称,则会引发错误。

另一个提示是使用getpass而不是硬编码密码:

passwd = getpass.getpass()
s = sftp.Connection(host='<host>', username = '<username>', password = passwd)