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

如何使用Python将特定格式的文件从sftp复制到本地,python,csv,sftp,paramiko,pysftp,Python,Csv,Sftp,Paramiko,Pysftp,连接到sftp不需要ftp_priv_密钥。 假设在给定的sftp路径中有10个文件,其中6个文件采用csv格式,其他或不同格式。我的要求是只复制csv格式文件。您需要执行以下操作: import paramiko import os paramiko.util.log_to_file('logfile.log') host = "100.10.89.23" port = 22 transport = paramiko.Transport((host, port)) password = "

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

您需要执行以下操作:

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()

按照您建议的方式进行更改&在运行代码时,我遇到了以下错误:1。Python36\lib\site packages\paramiko\sftp_client.py“第721行size=self.getfo(remotepath,fl,callback)2.Python36\lib\site packages\paramiko\sftp_client.py”第695行file_size=self.stat(remotepath).st_size 3.Python36\lib\site packages\paramiko\sftp_client.py”第41;行msg=self.\u请求(CMD_stat,path)4.Python36\lib\site packages\paramiko\sftp_client.py“第730行返回self.\u read_response(num)5。Python36\lib\site packages\paramiko\sftp\u client.py“第781行self.\u convert\u status(msg)6.Python36\lib\site packages\paramiko\sftp\u client.py”第807行raise IOError(errno.enoint,text)Stephen Rauch,,如果您能提出缺失的建议,那将不胜感激。这没有帮助。哪一行失败了?
sftp = paramiko.SFTPClient.from_transport(transport)
for filename in sftp.listdir(filepath):
    if filename.endswith('.csv'):
        sftp.get(filename, localpath)