要将本地文件上传到服务器,可以使用 Python 中的 paramiko
模块实现 SSH 连接和文件传输。
具体方法如下:
- 安装
paramiko
模块:pip install paramiko
- 创建 SSH 连接:
import paramiko # 创建 SSH 客户端对象 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy) # 连接远程服务器 ssh.connect('服务器地址', username='用户名', password='密码')
- 使用
SFTP
协议上传文件:# 创建 SFTP 客户端对象 sftp = ssh.open_sftp() # 上传本地文件到远程服务器 local_file_path = '本地文件路径' remote_file_path = '远程服务器文件路径' sftp.put(local_file_path, remote_file_path) # 关闭连接 sftp.close() ssh.close()
其中,服务器地址
是远程服务器的 IP 地址或主机名,用户名
和 密码
是登录远程服务器的凭据,本地文件路径
是要被上传的本地文件的完整路径(包括文件名),远程服务器文件路径
是文件在远程服务器上的保存路径和名称。
需要注意的是,在上传文件之前,需要确保远程服务器上的目标文件夹已经存在,否则会抛出异常。可以使用 os.path.dirname()
函数获取目标文件夹路径,然后使用 SFTP
客户端的 mkdir()
方法创建目标文件夹。
此外,如果需要下载远程服务器上的文件,则可以使用 SFTP
客户端的 get()
方法。具体用法类似于上传文件,只需要将本地文件路径和远程服务器文件路径交换即可。