Python脚本上传文件到远程服务器

2 投票
1 回答
4618 浏览
提问于 2025-04-18 06:41

我正在做一个项目,需要通过SFTP把一个文件上传到远程服务器,但我们遇到了一些问题。我们尝试按照这个YouTube教程来操作,但还是有些困难。

当我们运行脚本时,出现了“没有这样的文件”的错误,而我们确定文件是存在的,并且我们也给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 个回答

1

你在写远程路径的时候,记得要以一个斜杠“/”开头。另外,检查一下你在远程路径中指定的目录。你可以在登录到服务器后(比如用ssh登录)执行一个 pwd 命令,看看你现在在哪个目录。远程路径的写法要和这个完全一致。

虽然你在远程路径中已经包含了文件名,但如果你只写文件夹的名字,系统会报错。

还有一个小建议是,使用 getpass 来输入密码,而不是直接把密码写死在代码里:

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

撰写回答