如何使用Python将特定格式文件从sftp复制到本地

时间:2017-02-26 04:19:31

标签: python csv sftp paramiko pysftp

import paramiko
import os

paramiko.util.log_to_file('logfile.log')

host = "100.10.89.23"
port = 22
transport = paramiko.Transport((host, port))
password = "pass"
username = "user"
transport.connect(username = username, password = password)

sftp = paramiko.SFTPClient.from_transport(transport)

filepath = '/import/TMP'
localpath = 'F:\\Projects\\Test'
sftp.get(filepath, localpath)

sftp.close()
transport.close()

ftp_priv_key不需要连接到sftp。 假设我在给定的sftp路径中有10个文件,其中6个文件是csv格式,其他格式或格式不同。我的要求是只复制csv格式文件。

1 个答案:

答案 0 :(得分:2)

您需要执行以下操作:

sftp = paramiko.SFTPClient.from_transport(transport)
for filename in sftp.listdir(filepath):
    if filename.endswith('.csv'):
        sftp.get(filename, localpath)