获取非阻塞读取的[Errno 13]权限被拒绝

2024-09-30 14:24:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python-nonblock实现简单的非阻塞读取。我写了以下代码(Python2.7,Mac OSX):

from nonblock import nonblock_read
import subprocess
import time


def goSleep():
    print('Sleeping for a while! ...!')
    time.sleep(20)


def processData(data):
    print('This is my data ...!')
    print(data)


def doSecondaryTask():
    for i in range(1000):
        print('Count: %s\n' % i)
        time.sleep(3)


if __name__ == "__main__":
    pipe = subprocess.Popen(['filetest.txt'], stdout=subprocess.PIPE)
    while True:
        data = nonblock_read(pipe.stdout)
        if data is None:
            # All data has been processed and subprocess closed stream
            pipe.wait()
            break
        elif data:
            # Some data has been read
            processData(data)
        else:
            # No data is on buffer, but subprocess has not closed stream
            goSleep()

    # To prove that non-blocking read is working
    doSecondaryTask()

不幸的是,我得到了以下错误:

^{pr2}$

我不知道为什么我得到Permission denied!我在谷歌上搜索了几页,但还是看不到问题所在。任何帮助都是非常感谢的。在


Tags: importforreaddatatimeisdefsleep