python: os.system não executa o comando shell

1

Eu preciso executar o comando shell no programa python (eu tenho o Ubuntu). Mais especificamente, quero criar um gráfico usando graphviz no script python. Meu código é

os.system("dot -Tpng graph.dot -o graph.png")

Não funciona, mas se eu digitar apenas dot -Tpng graph.dot -o graph.png na linha de comando, tudo estará bem. Você sabe qual é o problema? Obrigada!

Editar: Não funciona significa que nada acontece, não há erros.

Saída de dot -v -Tpng graph.dot -o graph.png :

dot - graphviz version 2.26.3 (20100126.1600)
Activated plugin library: libgvplugin_pango.so.6
Using textlayout: textlayout:cairo
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
Using render: cairo:cairo
Using device: png:cairo:cairo
The plugin configuration file:
    /usr/lib/graphviz/config6
        was successfully loaded.
    render  :  cairo dot fig gd map ps svg tk vml vrml xdot
    layout  :  circo dot fdp neato nop nop1 nop2 osage patchwork sfdp twopi
    textlayout  :  textlayout
    device  :  canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap         imap_np ismap jpe jpeg jpg pdf plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml wbmp x11 xdot xlib
    loadimage   :  (lib) eps gd gd2 gif jpe jpeg jpg png ps svg
    
por ashim 03.03.2012 / 04:14

2 respostas

1

Eu descobri o problema. Eu deveria fechar o arquivo graph.dot antes de executar o comando.

    
por ashim 03.03.2012 / 19:16
0

Estranho, eu apenas tentei com o mesmo comando e ele me deu a saída esperada (esse gráfico não existe) Tem certeza que você tem

import os

Além disso, você tem certeza de que esta parte do código que executa o comando 'ponto' não está em uma condição inverídica (em uma declaração 'if' que não é verdadeira, então a parte do código depois disso nunca é executada)?

    
por hytromo 03.03.2012 / 09:38