Python 使用paramiko和sftp创建新的结果/日志文件

Python 使用paramiko和sftp创建新的结果/日志文件,python,paramiko,Python,Paramiko,我正在使用python和paramiko使用sftp读取一些文件。get工作正常。当我处理完文件后,我想放一个总结结果的文件。我宁愿不必首先将文件保存在本地来实现这一点;我有一份结果记录,我只想在sftp服务器上创建一个文件,将其放入。下面是我的代码,我希望所有相关的位和不相关的部分都被删除,以便于阅读 请注意,我正在成功地读取文件并对其进行处理,并创建结果记录,没有问题,并且在运行csv_导入时可以将其打印到终端。但是,当我尝试添加最后一步,将结果记录放入同一个sftp服务器上的文件时,它将永

我正在使用python和paramiko使用sftp读取一些文件。get工作正常。当我处理完文件后,我想放一个总结结果的文件。我宁愿不必首先将文件保存在本地来实现这一点;我有一份结果记录,我只想在sftp服务器上创建一个文件,将其放入。下面是我的代码,我希望所有相关的位和不相关的部分都被删除,以便于阅读

请注意,我正在成功地读取文件并对其进行处理,并创建结果记录,没有问题,并且在运行csv_导入时可以将其打印到终端。但是,当我尝试添加最后一步,将结果记录放入同一个sftp服务器上的文件时,它将永远挂起。感谢您的帮助

def csv_import():
we_are_live = True
host = "111.111.111.111"
port = 22
password = "cleverpwd"
username = "cleverun"
t = paramiko.Transport((host,port))
t.connect(username=username, password=password)
if we_are_live and t.is_authenticated():
    sftp = paramiko.SFTPClient.from_transport(t)
    sftp.chdir('.'+settings.REMOTE_SFTP_DIRECTORY)
    files_to_pick_from = sftp.listdir()
 …file processing code happens here, get back a dictionary of the results...
        results_file_name = 'results'+client_file_name
        results_file = paramiko.SFTPClient.from_transport(t)
        results_file.file(results_file_name,mode='w',bufsize=-1)
        results_file.write(str(sftp_results_of_import))
        results_file.close()
    t.close()

不久前做了类似的事情,但我使用了磁盘文件,也许您会发现一些有用的东西:

如果你只需要在内存中创建文件,你可以试试 StringIO:

代码示例有帮助,谢谢!虽然最终没有使用StringIO,但了解它也很有价值。非常感谢。