Я пытаюсь использовать программу Python для отправки непрерывного потока информации из одной программы в другую, например этот вопрос , но в байтовой форме.
pythonPath
иpythonScript
- это просто расположение файлов скрипта и python.exe
.
C # код
public static void PythonKernel_Test() {
Process pythonProcess = Process.Start(new ProcessStartInfo() {
FileName = pythonPath,
Arguments = pythonScript,
RedirectStandardOutput = true,
RedirectStandardInput = true,
UseShellExecute = false,
CreateNoWindow = true
});
Stream pythonStdOut = pythonProcess.StandardOutput.BaseStream;
for (int i = 0; i < 1000; i++) {
byte[] buffer = new byte[256];
pythonStdOut.Read(buffer, 0, 256);
Debug.Log(Encoding.ASCII.GetString(buffer) + Environment.NewLine + BitConverter.ToString(buffer));
}
pythonStdOut.Close();
}
Хотя это в Unity, вы можете просто заменить Debug.Log
на Console.WriteLine()
.
Однако, хотя я спамлю stdout
с SYNC
, на стороне C # ничего не появляется.Однако он появляется в командной строке при запуске из оболочки.
Код Python
w = sys.stdout.buffer
while True:
w.write(b"SYNC\n")
sys.stdout.flush()