python sftp传输文件
时间: 2023-08-01 12:09:18 浏览: 59
要在 Python 中使用 SFTP(Secure File Transfer Protocol)传输文件,你可以使用 `paramiko` 库。`paramiko` 是一个为 SSH 2 协议提供客户端和服务器功能的库,它也包含了 SFTP 功能。
首先,你需要安装 `paramiko` 库。你可以使用以下命令在终端中安装:
```
pip install paramiko
```
下面是一个示例代码,展示了如何使用 `paramiko` 进行 SFTP 文件传输:
```python
import paramiko
# 创建 SSH 客户端
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 连接到远程服务器
hostname = 'sftp.server.com'
port = 22
username = 'username'
password = 'password'
ssh.connect(hostname, port, username, password)
# 创建 SFTP 客户端
sftp = ssh.open_sftp()
# 下载文件
remote_path = '/path/to/remote/file.txt'
local_path = '/path/to/local/file.txt'
sftp.get(remote_path, local_path)
# 上传文件
remote_path = '/path/to/remote/file.txt'
local_path = '/path/to/local/file.txt'
sftp.put(local_path, remote_path)
# 关闭连接
sftp.close()
ssh.close()
```
在这个示例中,我们首先创建一个 `SSHClient` 对象,并设置了自动添加主机密钥的策略。然后,使用 `connect` 方法连接到远程服务器,提供主机名、端口、用户名和密码。
接下来,我们使用 `open_sftp` 方法创建一个 `SFTPClient` 对象。然后,可以使用 `get` 方法下载远程文件到本地,或使用 `put` 方法上传本地文件到远程服务器。
最后,我们使用 `close` 方法关闭 SFTP 连接和 SSH 连接。
请注意,为了安全起见,建议将用户名和密码存储在安全的地方,并避免在代码中明文显示。你可以使用其他安全措施,例如使用密钥进行身份验证。
希望这个示例能够帮助到你!如果还有其他问题,请随时提问。