我正在尝试在带有输入的 python while 循环中使用执行 tcprewrite,但我不断收到 EOF 错误。
我知道执行 tcprewrite 的子处理时输入会导致 EOF 错误。
我试过子处理其他命令,如触摸和日期,它们似乎不会导致 EOF 错误。
我尝试过 subprocess.call、os.system 和 Popen,但是在使用输入的 while 循环中执行 tcprewrite 时,它们会给出相同的 EOF 错误。
我可以自己在终端中运行 tcprewrite 命令。
import subprocess
import time
while True:
first = input("Option: ")
print(first)
command = "tcprewrite --infile=test1.pcap --outfile=result.pcap --dlt=enet --fixcsum"
p = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True)
(output, err) = p.communicate()
p_status = p.wait()
print("Command output : ", output)
print("Command exit status/return code : ", p_status)
time.sleep(5)
输出:
Option: 1
1
Command output : b''
Command exit status/return code : 0
Option: Traceback (most recent call last):
File "test3.py", line 8, in <module>
first = input("Option: ")
EOFError