我想使用匿名管道在Linux中的两个进程之间通信腌制对象.我不想使用子流程模块,而是手动创建必要的管道,然后调用pickle.dump和pickle.load.但是,最后两个函数需要一个文件对象.因此,在测试周围事物时,我面临以下问题.以下代码可以正常工作:
import os
r,w = os.pipe()
os.write(w,b"test")
os.read(r,1024)
但是此代码在读取操作时停滞
import os
r,w = os.pipe()
fr = os.fdopen(r,"rb")
fw = os.fdopen(w,"wb")
fw.write(b"test")
fr.read()
此外,select.select([r],[],0)显示管道为空.我的问题:文件对象创建过程中发生了什么,为什么它不适用于管道?有没有办法以这种方式获取文件对象?
最佳答案