如何获得收益率指标?
How to get index of yield?
我有这样的代码:
def iter_commit(LogFileName):
with open(path.join(__folder__, LogFileName)) as LogFileName_file:
for index, schema in enumerate(LogFileName_file):
if len(schema) > 10:
yield index, schema.rstrip('\n')
def makePool(cP, func, iters):
try:
pool = ThreadPool(cP)
pool.map_async(func,iters).get(99999)
pool.close()
pool.join()
except:
print('Pool Error')
raise
finally:
pool.terminate()
def Parse(RoWnum, Link):
print(RoWnum, Link)
makePool(50, partial(Parse, iter_commit(strSiteMap)[0]),
iter_commit(strSiteMap)[1])
但是我遇到了错误 TypeError: 'generator' object is not subscriptable
那么如何获取yield
的索引呢?
我可能不完全理解您要执行的操作,但以下未使用 functools.partial()
的内容可能会有所帮助,因为它不需要索引值即可工作。它所做的是将 makePool()
函数传递给一个迭代器,该迭代器将生成 Parse()
函数期望的成对值并将它们作为元组传递。
from multiprocessing.pool import ThreadPool
def pairwise(iterable):
"s -> (s0,s1), (s2,s3), (s4, s5), ..."
a = iter(iterable)
return zip(a, a)
strSiteMap = ['site0', 13, 'site1', 42]
def makePool(cP, func, iters):
try:
pool = ThreadPool(cP)
pool.map_async(func, iters).get(99999)
pool.close()
pool.join()
except Exception:
print('Pool Error')
raise
finally:
pool.terminate()
def Parse(args):
RowNum, Link = args
print('Parse({!r}, {!r}) called'.format(RowNum, Link))
makePool(50, Parse, pairwise(strSiteMap))
我有这样的代码:
def iter_commit(LogFileName):
with open(path.join(__folder__, LogFileName)) as LogFileName_file:
for index, schema in enumerate(LogFileName_file):
if len(schema) > 10:
yield index, schema.rstrip('\n')
def makePool(cP, func, iters):
try:
pool = ThreadPool(cP)
pool.map_async(func,iters).get(99999)
pool.close()
pool.join()
except:
print('Pool Error')
raise
finally:
pool.terminate()
def Parse(RoWnum, Link):
print(RoWnum, Link)
makePool(50, partial(Parse, iter_commit(strSiteMap)[0]),
iter_commit(strSiteMap)[1])
但是我遇到了错误 TypeError: 'generator' object is not subscriptable
那么如何获取yield
的索引呢?
我可能不完全理解您要执行的操作,但以下未使用 functools.partial()
的内容可能会有所帮助,因为它不需要索引值即可工作。它所做的是将 makePool()
函数传递给一个迭代器,该迭代器将生成 Parse()
函数期望的成对值并将它们作为元组传递。
from multiprocessing.pool import ThreadPool
def pairwise(iterable):
"s -> (s0,s1), (s2,s3), (s4, s5), ..."
a = iter(iterable)
return zip(a, a)
strSiteMap = ['site0', 13, 'site1', 42]
def makePool(cP, func, iters):
try:
pool = ThreadPool(cP)
pool.map_async(func, iters).get(99999)
pool.close()
pool.join()
except Exception:
print('Pool Error')
raise
finally:
pool.terminate()
def Parse(args):
RowNum, Link = args
print('Parse({!r}, {!r}) called'.format(RowNum, Link))
makePool(50, Parse, pairwise(strSiteMap))