簡體   English   中英

通過Python寫入現有的命名管道

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM