要在 Python 中执行 Linux 命令,我们有很棒的模块:os 和 subprocess。我已经使用 os 和 subprocess 模块在基于控制台的 python 程序中集成了 Linux 命令,但是在 Django 中不会发生同样的事情。以这个 View 为例:
def hello(request):
res = os.system('ls')
return render_to_response('thanks.html', {'res':res}, context_instance=RequestContext(request))
此 View 返回的唯一值是 0。我也尝试过使用子进程。我得到的输出是0。怎么了?
最佳答案
这不是 Django 问题。就是这样 os.system
确实 - 它给出了系统调用的返回值,在本例中为 0
为成功执行。
如果你需要抓取外部程序的输出,你应该使用 subprocess.check_output
(仅限 2.7)。但是,如果您只对目录列表感兴趣,那么有一个更好的方法,那就是使用 os.listdir
.
关于django - 如何在 Django 中执行 Linux 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13305396/