Ожидание продолжения процесса Python - PullRequest
0 голосов
/ 26 сентября 2019

Python версия: Python 2.7.13

Я пытаюсь написать сценарий, который может пройти через файл * .txt и запустить пакетный файл для выполнения определенного теста.

Приведенный ниже код проходит через входной файл, изменяя строку с «N» на «Y», что позволяет выполнить конкретный тест.Я нахожусь в процессе создания цикла for, чтобы пройти через все строки в файле * .txt и выполнить весь тест в последовательности.Однако моя проблема заключается в том, что я не хочу выполнять тест одновременно (что произойдет, если я просто напишу тестовый код).

Можно ли подождать, пока начальный тестзакончил запуск следующего?

Вот что у меня пока есть:

from subprocess import Popen
import os, glob

path = r'C:/Users/user1/Desktop/MAT'

for fname in os.listdir(path):
    if fname.startswith("fort"):
        os.remove(os.path.join(path, fname))

with open('RUN_STUDY_CHECKLIST.txt', 'r') as file:
    data = file.readlines()

ln = 4

ch = list(data[ln])
ch[48] = 'Y'
data[ln] = "".join(ch)

with open('RUN_STUDY_CHECKLIST.txt', 'w') as file:
    file.writelines(data)

matexe = Popen('run.bat', cwd=r"C:/Users/user1/Desktop/MAT")
stdout, stderr = matexe.communicate()

В этом конкретном случае я меняю 'N' в строке 2 файла * .txtна «Y», который будет использоваться в качестве входных данных для другого скрипта Python.

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

С уважением,

Хорхе

1 Ответ

0 голосов
/ 27 сентября 2019

После просмотра нескольких веб-сайтов мне удалось найти решение моего вопроса.

Я использовал:

exe1 = subprocess.Popen(['python', 'script.py'])

exe1.wait()

Я хотел опубликовать ответ на тот случай, если это кому-нибудь пригодится.

...