Este es el error
Traceback (most recent call last):
File "Juniper.py", line 66, in <module>
device_information()
File "Juniper.py", line 26, in device_information
device_connection(dev_ip,dev_username,dev_password)
File "Juniper.py", line 54, in device_connection
sftp_transfer(r)
File "Juniper.py", line 61, in sftp_transfer
c.put("%r" %r)
File "/usr/local/lib/python2.7/dist-packages/pysftp.py", line 349, in put
confirm=confirm)
File "/usr/local/lib/python2.7/dist-packages/paramiko/sftp_client.py", line
667, in put
**file_size = os.stat(localpath).st_size
OSError: [Errno 2] No such file or directory: "<closed file "juniper-results20150519-191928.txt", mode "a" at
0x24a0780>"**
Y el código que produce el error es:
def device_connection(dev_ip,dev_username,dev_password):
file = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
dev = Device(host = dev_ip,user = dev_username, password = dev_password)
dev.open()
f = open("show-command.txt")
for line in iter(f):
show_command = dev.cli(line)
r = open("juniper-results" + file + ".txt","a")
r.write("***"+ line)
r.write(show_command)
r.write("n")
r.close()
sftp_transfer(r)
return
def sftp_transfer(r):
c = pysftp.Connection(host = "10.72.129.35",port = 22, username = "Anonymous" , password = "Anonymous" )
c.put("%r" %r)
return
device_information()
Respuestas
2 para la respuesta № 1Le está diciendo a sftp que transfiera un descriptor de archivo, no el nombre del archivo.
Deberias cambiar tu sftp_transfer
línea a
sftp_transfer("juniper-results" + file + ".txt")
por lo que utilizará el nombre de archivo en pysftp
En lugar de tratar de usar los resultados de open
guardado en r