У меня есть простой скрипт Python для выполнения набора тестов как под Windows, так и под Linux. Каждый тест записывает свой результат в отдельный файл. Я использую subprocess.Popen для выполнения команды оболочки в цикле.
Каждая команда оболочки начинается так:
def system_execute(self, command, path, out_file):
params_list = command.split(' ')
file_path = os.path.join(path, out_file)
f = open(file_path, "w")
subprocess.Popen(params_list, stdout=f)
f.close()
Она работает нормально, но скрипт завершает свою работу до того, как будут записаны все выходные файлы. На самом деле, я получаю сотни файлов нулевого размера. файлы, и требуется некоторое время для завершения записи вывода и закрытия дескрипторов. Может ли кто-нибудь объяснить причину, по которой это работает так странно, и есть ли синхронный способ выполнить ту же работу?
Спасибо