1 实现
def remote_scp():
t = paramiko.Transport((server_ip, server_port))
t.connect(username=server_user, password=server_passwd)
sftp = paramiko.SFTPClient.from_transport(t)
src = 源文件路径及文件名
des = 本地路径及文件名
sftp.get(src, des)
t.close()
2 注意事项
这个包初次使用有很多不习惯,导致容易出错,需注意以下两点:
(1)server_ip, server_port需要当成一个整体传入:
t = paramiko.Transport((server_ip, server_port))
(2)本地存放路径不能只写到文件夹,还需要指定一个文件,传输后的文件名即为该文件的文件名。如:
des = r'E:\data\demo.tar.gz'
# 最终传输下来的文件即为demo.tar.gz
只指定文件夹不指定文件名的话会报错“PermissionError: [Errno 13] Permission denied”,这是因为传输的时候会将指定的文件夹当成传输后要写入的文件名,从而报此错误。
本人独自运营了微信公众号,用于分享个人学习及工作生活趣事,大家可以关注一波。(微信搜索“微思研”)