【问题标题】:calling linux shell in python with writing output in a text file在 python 中调用 linux shell 并在文本文件中写入输出
【发布时间】:2016-02-08 05:50:06
【问题描述】:

我想在 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。

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

【问题讨论】:

标签: python linux shell call


【解决方案1】:

使用例如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() 返回的文件对象

【讨论】:

  • 非常感谢。有用。只想知道:“w”是什么意思?
  • that's for write access;如果存在它,它会截断目标文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-09
  • 2014-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多