Печать Python добавляет новую строку и 0 - PullRequest
0 голосов
/ 30 ноября 2010

Вот моя проблема.Я пытаюсь подключиться к устройствам Cisco и получить информацию.Когда я запускаю свой код, оператор print добавляет новую строку с 0 в нижней части вывода.Вот вывод кода, за которым следует вывод ввода CLI plink:

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

C:\Python30>plink -pw nowayjose -ssh nope@1.1.1.1 "show run | inc hostname"
hostname net-R2
  <------------WHAT I EXPECT

Вот мой код:

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())

Ответы [ 3 ]

4 голосов
/ 30 ноября 2010

Это не «печатать ноль». Он печатает cur_dev, который возвращается функцией read_dev, которая оказывается равной нулю. И это так, потому что вы сказали это. Удалите функцию print, и она ничего не напечатает. "

4 голосов
/ 30 ноября 2010

cur_dev получает код результата, возвращенный командой plink, то есть 0. Ваша read_dev функция возвращает этот код, поэтому print(read_dev()) печатает 0.

Просто скажите read_dev() вместо print(read_dev()).

0 голосов
/ 30 ноября 2010

Если вы хотите явно установить код выхода, используйте sys.exit(cur_dev).Простое использование возвращаемого значения из функции не делает то, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...