如何在此OS模块示例中捕获文件

时间:2018-05-29 19:22:09

标签: python

我需要在python的OS模块中捕获一个文件。

我想要做的就是我在Perl中所取得的成就。请注意cat /tmp/illinois.txt

my $cmd = `$ENV{BB} $ENV{BBDISP} "status $host.$test $COLOR \`date\` 
\`cat /tmp/illinois.txt\`"`;

我想在python中做同样的事情。

cmd = "{BB} {BBDISP} \"status {NODE}.{TEST} {COLOR} {NOW}\n {MSG}\n\"".format(
TEST = "gov-affairs-MemoryUtilization",
BB = os.environ["BB"],
BBDISP = os.environ["BBDISP"],
COLOR = COLOR,
NOW = datetime.datetime.now(),
MSG=`cat /tmp/illinois.txt\`,
NODE="xxxxx")

1 个答案:

答案 0 :(得分:1)

您可以使用subprocess module运行脚本中的命令:

subprocess.run(cmd.split())

如果要保留环境变量,run()函数也会使用shell=True等参数,如果要查看命令的输出,则stdout=subprocess.PIPE

老实说,只要看看文档;)

编辑:正如Alan所提到的,shell=True选项通常被认为是不可取的,因为您无法确定系统使用哪个shell。更多详情here