Создание нового файла результатов / регистрации с использованием paramiko и sftp - PullRequest
0 голосов
/ 02 декабря 2011

Я использую python и paramiko для чтения некоторых файлов с использованием sftp.Get работает нормально.Когда я закончу обработку файла, я хотел бы поместить файл, обобщающий результаты.Я бы предпочел не сохранять файл сначала локально, чтобы сделать это;У меня есть данные о результатах, я просто хочу создать файл на сервере 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()

1 Ответ

1 голос
/ 02 декабря 2011

Некоторое время назад делал что-то похожее, но я использовал файлы на диске, может быть, вы найдете что-то полезное:

http://code.activestate.com/recipes/576810-copy-files-over-ssh-using-paramiko/

И если вам нужно только создавать файлы в памяти, вы можете попробовать StringIO: http://docs.python.org/library/stringio.html

...