createNamedPipe в python

hello У меня есть два файла python (namedpipe)

a.py

import win32pipe, win32file p = win32pipe.CreateNamedPipe(r'\\.\pipe\test_pipe', win32pipe.PIPE_ACCESS_DUPLEX, win32pipe.PIPE_TYPE_MESSAGE | win32pipe.PIPE_WAIT, 1, 65536, 65536,300,None) win32pipe.ConnectNamedPipe(p, None) data = "Hello Pipe" win32file.WriteFile(p, data) 

эта труба создает именованную трубку «test_pipe» и записывает данные в трубу.

b.py

 import win32pipe, win32file import win32file fileHandle = win32file.CreateFile("\\\\.\\pipe\\test_pipe", win32file.GENERIC_READ | win32file.GENERIC_WRITE, 0, None, win32file.OPEN_EXISTING, 0, None) data = win32file.ReadFile(fileHandle, 4096) print data 

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

 "<0, Hello Pipe>" 

Я не могу понять, почему все эти переменные печатаются (<, 0,>), где проблема в a.py или b.py и как я могу это исправить.

Это именно то, что win32file.ReadFile() возвращается. Он возвращает кортеж результата и прочитанных данных. Вы должны проверить, что результат равен 0 (или что-то еще применимое), а затем прочитать данные.

 data = win32file.ReadFile(fileHandle, 4096) if data[0] == 0: print data[1] else: print 'ERROR', data[0]