2013-12-24 4 views
0
def OnClick(self,event): 
    print "a:", a 
    os.system('iperf -s -w a') 

Здесь a отображается правильно. Но в команде os.system значение a принимается как 0. Не могли бы вы мне помочь?Внешняя команда от python

+0

Попробуйте создать эту команду отдельно, чтобы избежать таких ошибок. Что-то вроде или если 'a' всегда является строкой, вы также можете использовать% s. mrutyunjay

ответ

2

Вы не передаёте значение a, но вы проходите мимо a как есть. Таким образом, вы можете захотеть сделать это

os.system('iperf -s -w {}'.format(a)) 

Теперь значение a будет заменен на {}. Вы можете увидеть разницу между двумя версиями, печатая их

print 'iperf -s -w {}'.format(a) 
print 'iperf -s -w a' 
+0

поблагодарить u..got it .. Не могли бы вы рассказать мне о других способах вызова внешней команды, и вывод команды также должен отображаться. – user3131595

+0

@ user3131595 Возможно, вы захотите посмотреть ['subprocess.check_output'] (http://docs.python.org/2/library/subprocess.html#subprocess.check_output) – thefourtheye

+0

@ user3131595 Пожалуйста, подумайте о принятии этого ответа, если он поможет вам: http://meta.stackexchange.com/a/5235/235416 – thefourtheye

0
os.system('iperf -s -w a') 

принимает буквальное а и не значение переменной. Я хотел бы использовать:

cmd = 'iperf -s -w %d' %a 
os.system (cmd) 

См input output formatting in python

Смежные вопросы