這段代碼會在windows中ping一個ip地址並每2秒得到一個輸出行,但是,我發現ping.exe進程在運行後會有非常緩慢的內存增加,如果我將它部署到ping 1000 ip並行,會導致服務器掛起,我認爲這可能是由於stdout緩衝區,我可以知道如何清除標準輸出或限制其大小?謝謝!如何清除Python子流程中的stdout?
...
proc = subprocess.Popen(['c:\windows\system32\ping.exe','127.0.0.1', '-l', '10000', '-t'],stdout=subprocess.PIPE, creationflags=subprocess.CREATE_NEW_PROCESS_GROUP)
while True:
time.sleep(2)
os.kill(proc.pid, signal.CTRL_BREAK_EVENT)
line = proc.stdout.readline()
你包含轉義反斜線串的作品,因爲'\ w','\ s'和'\ p'不是轉義序列,所以Python會將反斜槓視爲反斜槓。雖然這不是一個好主意。你應該避免反斜槓(加倍)或使用原始字符串('r'...'')。 –