Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Problema usando os.system() / Problem using os.system()
30/06/2009, 18:10
Resposta: #1
Problema usando os.system() / Problem using os.system()
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 :!: :?
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
01/07/2009, 11:59
Resposta: #2
Re: Problema usando os.system() / Problem using os.system()
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)
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS