У меня есть папка с подпапками, содержащая .pp Файлы манифеста Puppet. Я обнаружил, что могу использовать инструмент puppet strings для преобразования .pp файлов в json.
Этого легко достичь, используя терминал Unix, запустив команду puppet strings generate --format json file_name.pp
.
Я написал простой сценарий python для перебора всех файлов в указанном каталоге c и его подкаталоги, и запускайте эту команду для каждого файла.
К сожалению, я получаю только пустой шаблон строки марионеток без содержимого при запуске сценария (я реализовал распечатку команд, которые называется), однако использование команд прекрасно работает внутри Unix терминала.
Пожалуйста, что я делаю неправильно, что команды работают в Unix оболочке, но не внутри Python в подоболочке?
Вот код:
import os
def generate_json():
for dirpath, dirnames, filenames in os.walk(
'/home/odolezal/PycharmProjects/puppet_parser/files/'):
for filename in [f for f in filenames if f.endswith(".pp")]:
print(os.path.join(dirpath, filename))
print('puppet strings generate --format json ' + filename)
os.system('puppet strings generate --format json ' + str(filename))
if __name__ == "__main__":
generate_json()