Fórum Debian

Versão Completa: Problema usando os.system() / Problem using os.system()
Você está atualmente visualizando uma versão simplificada do conteúdo. Visualizar a versão completa com formatação.
Olá,

Estou escrevendo um pequeno método para substituir texto num ficheiro.
O único argumento necessário é o novo texto, pois o ficheiro e o texto a ser substituído são sempre os mesmos.

Estou tendo um problema usando os.system() com um argumento do método

Se eu usar uma string como no código abaixo, tudo corre bem:
I'm writing a small method to replace some text in a file.
The only argument I need is the new text, as it is always the same file and text to be replaced.
I'm having a problem using the os.system() call, when I try to use the argument of the method
If I use a string like below, everything runs ok:

Código:
stringId = "GRRRRRRRRR"
    cmd="sed '1,$s/MANAGER_ID=[0-9]*/MANAGER_ID=" + stringId + "/g' path/file.old > path/file.new"
    os.system(cmd)

Agora, se eu tentar passar a string como argumento, conforme o código abaixo, o comando não é executado.
Fiz um print para ver se o comando estava correcto e está! Até consigo executar se copiar e colar na minha sell
Now, if i try to give a string as a parameter like below, the command is not executed.
I do a print to see if the command is correct, and it is. I can even execute it with success if I copy / paste to my shell

Código:
import os
    def updateExportConfigId(id):
       stringId = "%s" % id
       cmd= "sed '1,$s/MANAGER_ID=[0-9]*/MANAGER_ID=" + stringId + "/g' path/file.old > path/file.new"
       print "command is " + cmd
       os.system(cmd)

Será que alguém me sabe dizer o que estou fazendo de errado?
Does anyone knows what is wrong?

Obrigada / Thanks :!: :?
Finally I was able to execute! Sorrisão

Problem was with the cmd string.

I did a print repr(cmd) as someone suggest (different forum) and found the cmd is different when using argument or hardcoded.

So, simple trick to "clean" the cmd string

os.system(str(cmd))

Thanks for the answers! 8)
URL de Referência