Como posso passar variáveis em os.system? [fechadas]

0

Estou usando este comando para inserir uma variável:

'os.system("sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get()))'

e funciona bem, mas quando eu adiciono algumas outras variáveis, parece não funcionar e não consigo inserir as variáveis.

os.system("sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ "delay=" +(R2.get())+ "tcp_port=" +(R3.get()))
    
por M.hajer 16.05.2016 / 21:31

1 resposta

1

A melhor coisa nesses casos é apenas imprimir a string antes de usá-la, para que você possa ver se tudo está correto.

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ "delay=" +(R2.get())+ "tcp_port=" +(R3.get())
print(command)
os.system(command)

Meu palpite é que você está perdendo um espaço antes dos parâmetros delay e tcp_port .

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=" +(R1.get())+ " delay=" +(R2.get())+ " tcp_port=" +(R3.get())

Depois limpe um pouco as coisas:

command = "sudo insmod /home/hajer/final_module/module.ko src_ip=%s delay=%s tcp_port=%s" % (R1.get(), R2.get(), R3.get())

Também os.system está obsoleto, você deve usar o módulo subprocess .

    
por Timo 17.05.2016 / 10:46