2010-11-30 6 views
0

Voici mon problème. J'essaye de ssh aux dispositifs de Cisco et arrache l'information. Lorsque j'exécute mon code, l'instruction print ajoute une nouvelle ligne avec un 0 au bas de la sortie. Voici la sortie du code suivi par la sortie de l'entrée plink CLI:L'impression Python ajoute une nouvelle ligne et 0

C:\Python30>python PLINKSSHtest.py 
Enter your username: josh 
Password: 
plink -pw nowayjose -ssh [email protected] "show run | inc hostname" 
hostname net-R2 
0 <------------MY ISSUE 

C:\Python30>plink -pw nowayjose -ssh [email protected] "show run | inc hostname" 
hostname net-R2 
    <------------WHAT I EXPECT 

Voici mon code:

def read_dev(): 
    # Print statement here for debugging 
    print ("plink -pw " + password + " -ssh " + user + "@" + HOST + " " + command) 
    cur_dev = os.system("plink -pw " + password + " -ssh " + user + "@" + HOST + " " + command) 
    return(cur_dev) 

HOST = None 
user = input("Enter your username: ") 
password = getpass.getpass() 
command = '"show run | inc hostname"' 
HOST = '1.1.1.1'  
print (read_dev()) 
+0

Don » t utiliser Python 3.0, c'était juste une "preuve de concept" Obtenir la dernière version de Python 3.1 –

+0

Réponse courte: Vous imprimez la valeur retournée par la fonction 'read_dev()'. appel de la fonction et l'invoquer par lui-même – martineau

Répondre

4

cur_dev est d'obtenir le code de résultat renvoyé par la commande plink, qui est 0. Votre fonction read_dev renvoie ce code, si print(read_dev()) imprime le 0.

Il suffit de dire read_dev() au lieu de print(read_dev()).

+0

Oui, merci! J'ai déplacé le statemnt d'impression à l'intérieur de la fonction et tout est bon maintenant. – josh

4

Il n'imprime pas "zéro". Il imprime cur_dev qui est retourné par la fonction read_dev, ce qui arrive à zéro. Et il le fait, parce que tu l'as dit. Retirer la fonction print et il ne sera pas imprimé quoi que ce soit. »

0

Si vous souhaitez définir explicitement le code de sortie utilisation sys.exit(cur_dev). En utilisant simplement une valeur de retour d'une fonction ne fait pas ce que vous voulez.

Questions connexes