python:os.system 不执行 shell 命令

python:os.system 不执行 shell 命令

我需要在 python 程序中执行 shell 命令(我有 ubuntu)。更具体地说,我想在 python 脚本中使用 graphviz 创建图形。我的代码是

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

它不起作用,但如果我只是输入dot -Tpng graph.dot -o graph.png命令行,那么一切都很好。你知道问题是什么吗?谢谢!

编辑: 不起作用意味着没有任何事情发生,没有错误。

输出自 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

答案1

我找到了问题所在。我应该在执行命令之前关闭文件 graph.dot。

答案2

奇怪,我刚刚尝试使用相同的命令,它给了我预期的输出(graph.dot 不存在)你确定你有

import os

? 另外,您确定执行“点”命令的这段代码不处于不真实的状态(在“if”语句中不真实,因此此后的代码段永远不会执行)吗?

相关内容