example

作者: 紫炎seraph | 来源:发表于2017-05-03 15:53 被阅读0次

    importsys

    classReader(object):

    def__init__(self):

    self.data =self._read()

    @staticmethod

    def_read():

    data = []

    withopen('data.txt')asfobj:

    forlineinfobj:

    data.append(tuple(line.split()))

    returndata

    @staticmethod

    def_read(self):

    returntuple(tuple(line.split())forlineinopen('data.txt'))

    defread_forever(fobj):

    importtime

    whileTrue:

    line = fobj.readline()

    if notline:

    time.sleep(0.1)

    continue

    yieldline

    deffilter_comments(lines):

    forlineinlines:

    if notline.strip().startswith('#'):

    yieldline

    defget_number(lines):

    forlineinlines:

    yieldint(line.split()[-1])

    definit_coroutine(func):

    importfunctools

    functools.wraps(func)

    definit(*args, **kwargs):

    gen = func(*args, **kwargs)

    next(gen)

    returngen

    returninit

    defread_forever(fobj, target):

    importtime

    whileTrue:

    line = fobj.readline()

    if notline:

    time.sleep(0.1)

    continue

    target.send(line)

    @init_coroutine

    deffilter_comments(target):

    target = {'debug':lambdaline:sum(line)}

    while(True):

    line =yield

    if notline.strip().startswith('#'):

    target.send(line)

    @init_coroutine

    defget_number(target):

    whileTrue:

    line =yield

    level, number = line.split(':')

    number =int(number)

    target[level].send(number)

    @init_coroutine

    deffatal():

    sum_ =0

    whileTrue:

    value =yield

    sum_ += value

    sys.stdout.write("FATAL: %d"% sum_)

    sys.stdout.flush()

    @init_coroutine

    defdebug():

    sum_ =0

    whileTrue:

    value =yield

    sum_ += value

    sys.stdout.write("DEBUG: %d"% sum_)

    sys.stdout.flush()

    @init_coroutine

    deferror():

    sum_ =0

    whileTrue:

    value =yield

    sum_ += value

    sys.stdout.write("ERROR: %d"% sum_)

    sys.stdout.flush()

    TARGETS = {'DEBUG': debug(),

    'ERROR': error(),

    'FATAL': fatal()}

    defshow_sum(file_name='out.txt'):

    read_forever(open(file_name), filter_comments(get_number(TARGETS)))

    defshow_num_1(file_name):

    lines = Reader.read_forever(open(file_name))

    sum =0

    importsys

    try:

    fornuminReader.get_number(Reader.filter_comments(lines)):

    sum += num

    sys.stdout.write('sum: %d'% sum)

    sys.stdout.flush()

    exceptKeyboardInterrupt:

    print'sum', sum

    相关文章

      网友评论

          本文标题:example

          本文链接:https://www.haomeiwen.com/subject/jmxktxtx.html