在 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
, stdout
和 stderr
用于类似 open()
返回的文件对象
我想在 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
, stdout
和 stderr
用于类似 open()