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