в python 3.4.2 к popen разница на windows против линукс

я пытаюсь написать скрипт на python, который использует к popen для запуска других скриптов python. у меня есть функции, которые я хочу, но я заметил различное поведение на linux по сравнению с windows. вот фрагмент кода, который я думаю, является причиной разницы:

                p = popen([script_call, test_file], stdout=pipe, stderr=pipe, stdin=pipe)                try:                    p.wait(timeout = zombie_wait)                    print(p.returncode)                except subprocess.timeoutexpired as err:                    force_kill = true                    p.kill()                    zombie_thread_warning(os.path.basename(tup[0]))                    o = open("grade.txt", "w")                    o.write("timeoutexpired error: {0}\n".format(err))                    o.write("please contact the instructor\n")                      o.close()

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

редактировать: я использую stdout и stderr от процесса в к popen позже в мой код, используя:

                    p.stdout                    p.stderr