Как захватить вывод из командной строки с помощью регистрации Python? - PullRequest
1 голос
/ 11 июня 2019

Я пишу сценарий для анонимизации метаданных, и я настраиваю систему ведения журнала, чтобы записывать, как выполняется сценарий каждый раз, когда он получает тему.Скрипт передает и извлекает информацию с онлайн-сервера и использует для этого команды оболочки «curl».Когда я выполняю сценарий, я получаю вывод в оболочке, который я хотел бы записать в файл журнала, но я не знаю, как его записать.

На данный момент у меня настроен регистраторas:

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 Ответ

1 голос
/ 11 июня 2019

попробуйте использовать os.popen вместо os.system, чтобы получить вывод в виде строки:

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

тогда вы можете записать это как любое другое содержимое строки

...