操作系统错误22-python可以';t读取和写入标准数据
大家好,我正在试着运行两个非常简单的脚本,我知道这两个脚本在其他人运行并得到正确的结果时是有效的。但是,我一直遇到一个“OS:Error[22]-无效参数” 这两个脚本旨在相互通信。这是: Test1.py操作系统错误22-python可以';t读取和写入标准数据,python,shell,cmd,operating-system,subprocess,Python,Shell,Cmd,Operating System,Subprocess,大家好,我正在试着运行两个非常简单的脚本,我知道这两个脚本在其他人运行并得到正确的结果时是有效的。但是,我一直遇到一个“OS:Error[22]-无效参数” 这两个脚本旨在相互通信。这是: Test1.py import subprocess p = subprocess.Popen(['python', 'Test2.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE) p.stdin.write("Hello\n")
import subprocess
p = subprocess.Popen(['python', 'Test2.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write("Hello\n")
p.stdin.flush()
print('got', p.stdout.readline().strip())
p.stdin.write("How are you?\n")
p.stdin.flush()
print('got', p.stdout.readline().strip())
import sys
data = sys.stdin.readline()
sys.stdout.write("Hm.\n")
sys.stdout.flush()
data = sys.stdin.readline()
sys.stdout.write("Whatever.\n")
sys.stdout.flush()
Test2.py
import subprocess
p = subprocess.Popen(['python', 'Test2.py'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.stdin.write("Hello\n")
p.stdin.flush()
print('got', p.stdout.readline().strip())
p.stdin.write("How are you?\n")
p.stdin.flush()
print('got', p.stdout.readline().strip())
import sys
data = sys.stdin.readline()
sys.stdout.write("Hm.\n")
sys.stdout.flush()
data = sys.stdin.readline()
sys.stdout.write("Whatever.\n")
sys.stdout.flush()
我打开windows cmd,导航到包含这两个脚本的目录并键入“python Test1.py”,这是我得到的错误消息:
File "Test2.py", line 5, in <module>
sys.stdout.flush()
OSError: [Errno 22] Invalid argument
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='cp1252'>
OSError: [Errno 22] Invalid argument
文件“Test2.py”,第5行,在
sys.stdout.flush()
OSError:[Errno 22]参数无效
在中忽略异常:
OSError:[Errno 22]参数无效
希望您能帮我解决这个问题。谢谢大家!