Python脚本上传文件到远程服务器
我正在做一个项目,需要通过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)