Я использую paramiko
ssh для запуска cat /tmp/file
на удаленном компьютере, который содержит одну цифру.Невозможно лить int из b'0 n '
Эта цифра должна быть по сравнению с 0.
stdin, stdout, stderr = client.exec_command('cat /tmp/file')
print("stdout:")
print(stdout)
print("\nstdout.read():")
print(stdout.read())
print("\nif not int(errlvl) == 0:")
errlvl = stdout.read()
if not int(errlvl) == 0:
Выход:
stdout:
<paramiko.ChannelFile from <paramiko.Channel 35 (open) window=2097152 -> <paramiko.Transport at 0x2b36750 (cipher aes128-ctr, 128 bits) (active; 1 open channel(s))>>>
stdout.read():
b'0\n'
int(stdout.read())
Traceback (most recent call last):
[...]
if not int(errlvl) == 0:
ValueError: invalid literal for int() with base 10: b''
Как я могу использовать значение int
, в этом случае 0
, в моем if
?
Это не 'b'0 \ n'', это пустая байтовая строка' b'''. 'int (b'0 \ n ')' работает. – wim
Вы не печатаете правильную вещь. 'print errlvl' –
' stdout.read() 'перемещает указатель файла, если вы его еще раз вызовете, вы ничего не получите. – tamasgal