Questo è l'errore
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>"**
E il codice che produce l'errore è:
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()
risposte:
2 per risposta № 1Stai dicendo a sftp di trasferire un descrittore di file, non il nome del file.
Dovresti cambiare il tuo sftp_transfer
linea a:
sftp_transfer("juniper-results" + file + ".txt")
quindi userà il nome del file in pysftp
invece di provare a utilizzare i risultati di open
immagazzinato r