欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 代码加入SFTP Python ---(小白篇4)

代码加入SFTP Python ---(小白篇4)

2025/4/29 18:39:33 来源:https://blog.csdn.net/leader_song/article/details/144653421  浏览:    关键词:代码加入SFTP Python ---(小白篇4)

在 Python 中,可以使用 pysftpparamiko 来接入 SFTP 服务并执行文件上传、下载和目录操作。以下是使用两种库的示例代码。


1.服务器上加入SFTP------(小白篇 1)

2.加入SFTP 用户------(小白篇 2)

3.代码加入SFTP JAVA —(小白篇3)

4.代码加入SFTP Python —(小白篇4

5.代码加入SFTP Go —(小白篇5)

1. 安装依赖

安装 paramikopysftp

pip install paramiko pysftp

2. 使用 Paramiko

示例代码
import paramiko# SFTP 服务器信息
SFTP_HOST = "your-server-ip"
SFTP_PORT = 22
SFTP_USER = "newuser"
SFTP_PASSWORD = "yourpassword"def sftp_operations():try:# 创建 SSH 客户端transport = paramiko.Transport((SFTP_HOST, SFTP_PORT))transport.connect(username=SFTP_USER, password=SFTP_PASSWORD)# 打开 SFTP 会话sftp = paramiko.SFTPClient.from_transport(transport)# 上传文件local_file = "C:/path/to/local/file.txt"remote_file = "/uploads/file.txt"sftp.put(local_file, remote_file)print(f"Uploaded {local_file} to {remote_file}")# 下载文件download_file = "C:/path/to/download/file.txt"sftp.get(remote_file, download_file)print(f"Downloaded {remote_file} to {download_file}")# 列出远程目录directory = "/uploads"files = sftp.listdir(directory)print(f"Files in {directory}: {files}")# 关闭连接sftp.close()transport.close()print("SFTP connection closed.")except Exception as e:print(f"An error occurred: {e}")if __name__ == "__main__":sftp_operations()
代码说明
  1. 连接服务器: 使用 paramiko.Transport 建立连接。
  2. 上传文件: 使用 sftp.put() 方法将本地文件上传到服务器。
  3. 下载文件: 使用 sftp.get() 方法从服务器下载文件。
  4. 列出目录内容: 使用 sftp.listdir() 方法列出目录中的文件。

3. 使用 pysftp

示例代码
import pysftp# SFTP 服务器信息
SFTP_HOST = "your-server-ip"
SFTP_USER = "newuser"
SFTP_PASSWORD = "yourpassword"# 配置 SFTP 连接选项
cnopts = pysftp.CnOpts()
cnopts.hostkeys = None  # 忽略主机密钥检查(生产环境应提供主机密钥)def sftp_operations():try:# 建立连接with pysftp.Connection(host=SFTP_HOST, username=SFTP_USER, password=SFTP_PASSWORD, cnopts=cnopts) as sftp:print("SFTP connection established.")# 上传文件local_file = "C:/path/to/local/file.txt"remote_file = "/uploads/file.txt"sftp.put(local_file, remote_file)print(f"Uploaded {local_file} to {remote_file}")# 下载文件download_file = "C:/path/to/download/file.txt"sftp.get(remote_file, download_file)print(f"Downloaded {remote_file} to {download_file}")# 列出远程目录directory = "/uploads"files = sftp.listdir(directory)print(f"Files in {directory}: {files}")except Exception as e:print(f"An error occurred: {e}")if __name__ == "__main__":sftp_operations()
代码说明
  1. 连接服务器: 使用 pysftp.Connection 建立连接。
  2. 上传文件: 使用 sftp.put() 上传文件。
  3. 下载文件: 使用 sftp.get() 下载文件。
  4. 忽略主机密钥检查: cnopts.hostkeys = None 用于开发和测试环境,生产环境请提供主机密钥。

4. 对比 Paramiko 和 pysftp

功能Paramikopysftp
易用性配置较复杂,功能灵活简单易用,适合基本文件操作
主机密钥管理手动配置自动处理(可禁用)
适用场景高级需求,如自定义 SSH 会话基本 SFTP 文件操作

5. 测试代码

  • SFTP_HOSTSFTP_USERSFTP_PASSWORD 替换为实际的服务器信息。
  • 修改文件路径以匹配本地和远程文件。

6. 注意事项

  • 权限: 确保服务器上的 SFTP 用户有相应的目录权限。
  • 主机密钥: 生产环境中建议提供主机密钥 (~/.ssh/known_hosts) 而不是忽略密钥检查。
  • 防火墙: 确保服务器开放端口 22。

根据需求选择合适的库来完成 SFTP 操作!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词