создание последовательного порядка вызовов подпроцесса - PullRequest
1 голос
/ 01 марта 2020

Я вызываю 5 сценариев через функцию подпроцесса, но я хочу убедиться, что она обрабатывает его в том же порядке, что и в сценарии, чтобы обеспечить зависимости. Существует ли быстрый способ последовательного объединения этих 5 функций подпроцесса?

# CONNECT DATABASE
import seaborn as sns
import pandas as pd
from platform import python_version
import sys
import os
import subprocess
from sqlalchemy import create_engine
import sqlite3
# connection to database
db = sqlite3.connect('gencodb.db')
# cursor
cursor = db.cursor()

# ENTER THE DATA WEEKS
run_date = '29/02/2020'
this_wk = '29FEB20'
last_wk = '22FEB20'
prev_wk = '15FEB20'

subprocess.call("python 01_DataCleaning_Transactions.py".split() +
                [run_date, this_wk, last_wk, prev_wk], shell=True)

subprocess.call("python 02_DataCleaning_Views.py".split() +
                [run_date, this_wk, last_wk, prev_wk], shell=True)

subprocess.call("python 03_DataCleaning_SP.py".split() +
                [run_date, this_wk, last_wk, prev_wk], shell=True)

subprocess.call("python 04_DataCleaning_Inventory.py".split() +
                [run_date, this_wk, last_wk, prev_wk], shell=True)

subprocess.call("python 05_DataCleaning_QAs.py".split() +
                [run_date, this_wk, last_wk, prev_wk], shell=True)

1 Ответ

2 голосов
/ 01 марта 2020

Вместо использования subprocess.call вы должны использовать функцию subprocess.run, она ожидает окончания процесса до sh и возвращает CompletedProcess

Примечание:

subprocess.run(args)

Запустите команду, описанную аргументами. Дождитесь завершения команды, а затем верните CompletedProcess экземпляр.

Более подробную информацию вы можете получить по Python документам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...