我需要在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")
答案 0 :(得分:1)
您可以使用subprocess module运行脚本中的命令:
subprocess.run(cmd.split())
如果要保留环境变量,run()
函数也会使用shell=True
等参数,如果要查看命令的输出,则stdout=subprocess.PIPE
。
老实说,只要看看文档;)
编辑:正如Alan所提到的,shell=True
选项通常被认为是不可取的,因为您无法确定系统使用哪个shell。更多详情here。