Python办公自动化SFTP详解
在实际的工作场景中,经常需要将本地计算机的文件上传或下载到远程的服务器,这时sftp协议就变得非常实用了。Python语言提供了一种ubd-ftp库来操作sftp协议,Python办公自动化中的sftp常用于上传、下载、删除远程服务器上的文件。
- 连接SFTP服务器
首先,需要使用以下语句导入相关的库:
import paramiko
然后,通过如下代码建立与sftp服务器的连接:
ssh = paramiko.Transport(('sftp.yourserver.com', 22))
ssh.connect(username = 'username', password = 'password')
sftp = paramiko.SFTPClient.from_transport(ssh)
其中,需要传入服务器的地址和端口号以及用户名和密码。
- 上传文件到服务器
要将本地文件上传到sftp服务器上,需要使用如下代码:
sftp.put('local_path/file.txt', '/remote_path/file.txt')
其中,第一个参数是本地文件地址和文件名,第二个参数是要上传到的远程服务器的文件目录及文件名。
示例1:将本地文件上传到远程服务器上
import paramiko
ssh = paramiko.Transport(('sftp.yourserver.com', 22))
ssh.connect(username = 'username', password = 'password')
sftp = paramiko.SFTPClient.from_transport(ssh)
local_file_path = 'C:/Users/admin/Desktop/test.txt'
remote_file_path = '/home/user/test.txt'
sftp.put(local_file_path, remote_file_path)
ssh.close()
示例2:将remote_path目录下的所有文件下载到本地
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('sftp.yourserver.com', port=22, username='username',password='password')
sftp=ssh.open_sftp()
remote_dir_path = '/home/remote_path'
local_dir_path = 'C:/Users/admin/Desktop/local_path'
remote_files = sftp.listdir(remote_dir_path)
for i in remote_files:
remote_file_path = '{0}/{1}'.format(remote_dir_path, i)
local_file_path = '{0}/{1}'.format(local_dir_path, i)
sftp.get(remote_file_path, local_file_path)
ssh.close()
这里,使用sftp.listdir(remote_dir_path)
获取远程指定目录下的所有文件名,遍历每个文件名,将其下载到本地路径中。
以上就是Python办公自动化中SFTP的详细攻略,如有问题欢迎留言。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python办公自动化SFTP详解 - Python技术站