如何使用python日志记录捕获命令行输出?

时间:2019-06-11 15:02:30

标签: python shell logging command-line stdout

我正在编写用于匿名化元数据的脚本,并且正在建立一个日志记录系统,以记录每次接收主题时脚本如何执行。该脚本从联机服务器中推送和提取信息,并使用“ curl” shell命令来执行此操作。执行脚本时,我在shell中得到一个输出,希望将其记录在日志文件中,但是我不知道如何捕获它。

目前,我将记录器配置为:

import logging

logging.basicConfig(filename='/path/to/logging_test.txt',filemode='a',format='%(asctime)s - %(levelname)s - %(message)s',level=logging.DEBUG)

logger = logging.getLogger(__name__)

然后,一旦我从服务器中提取元数据,我便执行命令以修改元数据,

os.system(cmd)

将如下内容输出到外壳中:

{
   "ID" : "dshbjhdoqwdjwebfie",
   "Path" : "/subjects/dshbjhdoqwdjwebfie",
   "Type" : "Subject"
}

我想在日志文本文件中包含哪个。我该怎么做?

1 个答案:

答案 0 :(得分:1)

尝试使用os.popen而不是os.system,以字符串形式获取输出:

output = os.popen(cmd).read()

然后您就可以像记录任何其他字符串内容一样记录它