[英]Write to existing named pipe via Python
我有一個在Bash中創建的命名管道,如下所示:
PIPE_IN=$(mktemp -u)
mkfifo $PIPE_IN
這樣會產生例如:/tmp/tmp.H8EP7rYjCL
如何在Python中寫入此命名管道? 我嘗試將其重新打開為文件:
with open('/tmp/tmp.H8EP7rYjCL', 'w') as f:
f.write('something')
但這不起作用。 奇怪的是,似乎我寫到新打開的文件的內容都會在內部緩沖。 當我通過Bash寫入命名管道時,在連接到命名管道的進程中看到了緩沖內容。 例如,
echo "foo" > /tmp/tmp.H8EP7rYjCL
產量
somethingfoo
您需要刷新管道或編寫換行符(通常會自動刷新。換句話說,這就是echo的功能。在殺死python進程之前,還請從管道中讀取內容;否則在寫入管道時可能會被阻塞。
編輯:忘記沖洗(請參閱下面的評論)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.