Python Pexpect: TypeError: неподдерживаемые типы операндов для%: «int» и «dict»

Когда я пытаюсь запустить следующую команду pexpect, я получаю сообщение об ошибке: TypeError: unsupported operand type(s) for %: 'int' and 'dict'. Я действительно не понимаю, почему я получаю эту ошибку. Когда я печатаю строку, я вывожу результаты, которые я ожидаю.

Мой код:

p.sendline("sudo date -s \"%(easterndate)s\"") % locals()

Тестовая печать той же строки:

print "string ouput: " + "sudo date -s \"%(easterndate)s\"" % locals()
    output: sudo date -s "Tue Mar 26 14:25:51 EDT 2013"

person WorkerBee    schedule 26.03.2013    source источник


Ответы (1)


Так должно быть:

p.sendline("sudo date -s \"%(easterndate)s\"" % locals())

В противном случае % применяется к результату вызова sendline.

person Bakuriu    schedule 26.03.2013
comment
Должен ли быть \r при выполнении p.sendline или это подразумевается? - person WorkerBee; 26.03.2013
comment
@WorkerBee Я понятия не имею, почему вы хотите добавить возврат каретки в конце строки, в любом случае документация утверждает, что перевод строки автоматически добавляется в конце. - person Bakuriu; 26.03.2013