使用 python 通过 sftp 上传文件
Upload file via sftp with python
我在 python 中写了一个简单的代码来将文件上传到 sftp 服务器。我正在使用 python 2.7
import pysftp
srv = pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")
srv.cd('public') #chdir to public
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/
# Closes the connection
srv.close()
文件没有出现在服务器上。但是,没有出现错误消息。代码有什么问题?
编辑:我启用了日志记录。我发现该文件已上传到根文件夹,而不是 public 文件夹下。好像 srv.cd('public')
没用。
我找到了我自己问题的答案。
import pysftp
srv = pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")
with srv.cd('public'): #chdir to public
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/
# Closes the connection
srv.close()
把srv.put
放在里面srv.cd
import pysftp
with pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log") as sftp:
sftp.cwd('/root/public') # The full path
sftp.put('C:\Users\XXX\Dropbox\test.txt') # Upload the file
不需要sftp.close()
,因为连接在with-block结束时自动关闭
我将 cd
更改为 cwd
语法 -
# sftp.put('/my/local/filename') # upload file to public/ on remote
# sftp.get('remote_file') # get a remote file
作为上下文管理器将关闭连接。不需要显式使用 srv.close()
我在 python 中写了一个简单的代码来将文件上传到 sftp 服务器。我正在使用 python 2.7
import pysftp
srv = pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")
srv.cd('public') #chdir to public
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/
# Closes the connection
srv.close()
文件没有出现在服务器上。但是,没有出现错误消息。代码有什么问题?
编辑:我启用了日志记录。我发现该文件已上传到根文件夹,而不是 public 文件夹下。好像 srv.cd('public')
没用。
我找到了我自己问题的答案。
import pysftp
srv = pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log")
with srv.cd('public'): #chdir to public
srv.put('C:\Users\XXX\Dropbox\test.txt') #upload file to nodejs/
# Closes the connection
srv.close()
把srv.put
放在里面srv.cd
import pysftp
with pysftp.Connection(host="www.destination.com", username="root",
password="password",log="./temp/pysftp.log") as sftp:
sftp.cwd('/root/public') # The full path
sftp.put('C:\Users\XXX\Dropbox\test.txt') # Upload the file
不需要sftp.close()
,因为连接在with-block结束时自动关闭
我将 cd
更改为 cwd
语法 -
# sftp.put('/my/local/filename') # upload file to public/ on remote
# sftp.get('remote_file') # get a remote file
作为上下文管理器将关闭连接。不需要显式使用 srv.close()