在 python 中调用 linux shell 并在文本文件中写入输出

calling linux shell in python with writing output in a text file

我想在 Python 代码中调用系统 shell 并将结果写入文本文件。当我写这个命令时:

call(["ls", "-lrt"])

调用进程运行并将文件和文件夹列表作为输出打印在屏幕上。但是,当我尝试将打印输出写入文本文件(而不是屏幕)时,它不起作用!我尝试了所有这些:

call(["ls", "-lrt", ">", "result.txt"])

call(["ls", "-lrt", "> result.txt"])

call(["ls -lrt > result.txt"])

但是在 Linux shell 中,这个命令“ls -lrt > result.txt”非常有效。

我正在使用 Linux CentOS 7,我的 Python 版本是 2.7.5。

如果有人能帮助我解决这个简单的问题,我将不胜感激。

使用例如subprocess.call 像这样

subprocess.call(["ls",  "-lrt"], stdout=open("foo.txt",'w'))

函数的签名

subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)

不言自明; stdin , stdoutstderr 用于类似 open()

返回的文件对象