У меня есть этот кусок кода, который отлично работает в Linux, но не работает в Windows.Процесс создан нормально, но я получаю ошибку, и ничего не читается из канала:
p = subprocess.Popen(['python', '-u', self.file_to_run,
'-s', '-g', '-i', self.input_file],
universal_newlines=True,
stdout=subprocess.PIPE)
...
out = p.stdout.readline().rstrip()
Ошибка, которую я получаю:
Traceback (most recent call last):
File "bench.py", line 59, in <module>
multi.add_process()
File "bench.py", line 47, in add_process
stdout=subprocess.PIPE)
File "c:\python\v2.5.1-ast3\...\lib\subprocess.py", line 615, in __init__
self.stdout = os.fdopen(c2pread, 'rU', bufsize)
OSError: [Errno 22] Invalid argument
Я фактически создаю несколько таких процессов и на основе их выводарассчитать некоторые значения, но это не имеет значения.Что мне нужно сделать, так это запустить скрипт с определенными аргументами несколько раз и проанализировать данные, передаваемые из стандартного вывода каждого процесса.