Хорошо, я наслаждался с python подпроцессом. Откройте и обнаружил одну странную вещь:
OnlineListener = subprocess.Popen(("python", prog_dir + "online.py", prog_dir, port),
shell=True,
stdout=None,
stdin=subprocess.PIPE)
print(b"f", file=OnlineListener.stdin, flush=True)
Но я получил странную ошибку:
Traceback (most recent call last):
File "C:/##########/PycharmProjects/#####/main.py", line 53, in <module>
processes = run_proc()
File "C:/##########/PycharmProjects/#####/main.py", line 27, in run_proc
print(b"f", file=OnlineListener.stdin, flush=True)
TypeError: a bytes-like object is required, not 'str'
как в байтах требуется объект, а не 'str'
Я думал, что ошибка связана с b"f"
, но на самом деле:
print(type(b'f')) # return: <class 'bytes'>
Может кто-нибудь помочь мне с этим?
UPD. Может быть, мне не нужен ответ на этот вопрос, но просто посмотрите на это:
scoper.stdin.write("end\n".encode())
TypeError: write() argument must be str, not bytes
##################
НО ########################.
scoper.stdin.write("end\n")
TypeError: a bytes-like object is required, not 'str'