2011-12-01 91 views
0

我使用Python和的paramiko读取使用SFTP一些文件的新结果/日志文件。得到工作正常。当我完成文件的处理时,我想将一个文件汇总到结果中。为了做到这一点,我宁愿不必先在本地保存文件;我有一个结果字典,我只是想在sftp服务器上创建一个文件来放入。下面是我的代码,我希望所有相关位和无关部分为了可读性而被删除。创建使用的paramiko和SFTP

注意,我成功地读取文件并进行处理,并创建结果的字典,没有问题,我可以把它打印到我的终端,当我运行csv_import。当我尝试添加结果字典到同一个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() 

回答