proc.stderr.readlines()以特定的svn路径挂起

时间:2018-05-28 14:25:08

标签: python-3.x svn subprocess

Python 3.6.5 这是我在svn中列出目录的代码。它适用于大多数目录,但是一条路径error = proc.stderr.readlines()永远挂起(100%可重复)。任何想法为什么或解决方法?从终端命令工作

class MyRemoteSvnClient(object):
def __init__(self, url):
    self.url = url

def list(self, rel_path=None, retries=5):
    url = self.url if self.url.endswith('/') else self.url + '/'
    if rel_path:
        url = '{}{}'.format(url, rel_path)
    # print(url)
    retries = retries + 1
    for i in range(1, retries):
        proc = Popen(['svn', 'ls', url], shell=True, stdout=PIPE,
                                stderr=PIPE, universal_newlines=True)
        error = proc.stderr.readlines()
        if i == retries - 1:
            raise SvnException(error)
        if error:
            logger.warning('svn error occurred, retrying {}/{}'.format(i, retries - 1))
            sleep(1)
            continue
        while True:
            output = proc.stdout.readline().strip()
            if proc.poll() is not None:
                break
            if output:
                yield output
        break

0 个答案:

没有答案