在Python命名管道操作期间EOFError和删除的值

时间:2016-08-03 02:48:01

标签: python named-pipes

我正在写一个管道并在一个单独的课程中再次阅读。

我打开管道,并通过1到1000之间的迭代发送。接收管道得到这个并返回值。我遇到了两个问题:

  1. 传输

  2. 之间发生随机EOFE错误
  3. 接收管道功能似乎只从30 +

  4. 开始打印

    我的代码如下:

    for num in range(1000):
        classMan.give('data.fifo', num + 1)
    
    def give(self, path, value):
        pipe = open(path, "wb")
        pickle.dump(values, pipe)
        pipe.close() 
    

    我的接收功能如下:

    def pipeListener(self, path):
        try:      
            pipe = open(path, "rb")
            data = pickle.load(pipe)
            pipe.close()
            return data
        except EOFError:
            print("EOFError")
            return None
    

    运行代码时,我得到如下输出:

    python3 pipe_learning.py
    EOFError
    21
    24
    EOFError
    27
    28
    29
    30
    31
    32
    

    我哪里出错了?我对Pipes相对较新,但这似乎不正常,尤其是EOFErrors的随机特性。

0 个答案:

没有答案