¿Cuál es la forma más pitónica de analizar un archivo en Python? La única ruta que soy consciente es deCómo capturar python?
os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile))
que es un truco, y lo que no funciona fuera de los sistemas parecidos a Linux, y que necesita la ayuda del módulo de Pexpect para evitar solicitudes de contraseña a menos que ya tiene sin contraseña SSH configurado para el host remoto.
Conozco Twisted's conch
, pero prefiero evitar la implementación de scp a través de los módulos ssh de bajo nivel.
Conozco paramiko
, un módulo de Python que admite ssh y sftp; pero no es compatible con scp.
Antecedentes: me estoy conectando a un enrutador que no es compatible con sftp pero admite ssh/scp, por lo que sftp no es una opción.
EDIT: Esto es un duplicado de How to copy a file to a remote server in Python using SCP or SSH?. Sin embargo,, esa pregunta no proporciona una respuesta específica de scp que trate las claves desde dentro de python. Estoy esperando una forma de ejecutar código de clase como de
import scp
client = scp.Client(host=host, user=user, keyfile=keyfile)
# or
client = scp.Client(host=host, user=user)
client.use_system_keys()
# or
client = scp.Client(host=host, user=user, password=password)
# and then
client.transfer('/etc/local/filename', '/etc/remote/filename')
La única razón por la que funciona 'nix es que tiene SCP en la ruta; como señala Blauohr, eso no es demasiado difícil de arreglar. +1 – ojrac