2013-06-04 3 views
4

Мне нужно написать строку в файл на удаленном хосте, используя модуль paramiko python. Я пробовал различные методы перенаправления ввода, но без успеха.Запись локальной строки в удаленный файл с использованием python paramiko

localstring в приведенном ниже фрагменте кода заполняется результат команды кошки

stdin, stdout, stderr = hydra.exec_command('cat /file.txt') 
localstring = stdout.read() 
manipulate(localstring) 
hydra.exec_command('cat > newfile.txt\n' + localstring + '\n') 

Я, кажется, мой сценарий зависание или получить ошибку EOF или нет результирующей строки появляются в файле на все. Обратите внимание, что файл имеет несколько строк.

ответ

1

cat читается с stdin. Вместо этого используйте echo.

'echo ' + localstring + ' > newfile.txt' 

Если вам нужно повторить несколько строк, используйте -e флаг:

echo -e "Line1\nLine2\n" > file.txt 
4

Вы можете также использовать функцию FTP:

import paramiko 

ssh = paramiko.SSHClient() 
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
ssh.connect('example.com', username='username', password='password') 

ftp = ssh.open_sftp() 
file=ftp.file('remote file name', "a", -1) 
file.write('Hello World!\n') 
file.flush() 
ftp.close() 
ssh.close() 
Смежные вопросы