python progressbar 多行_使用单击.progressbar在Python中使用多处理
我有一個(gè)巨大的列表,我需要處理,這需要一些時(shí)間,所以我把它分為4個(gè)部分,并用一些函數(shù)對(duì)每個(gè)部分進(jìn)行多重處理。用4個(gè)內(nèi)核運(yùn)行仍然需要一些時(shí)間,所以我想我應(yīng)該在函數(shù)中添加一些進(jìn)度條,這樣它就可以告訴我每個(gè)處理器在處理列表時(shí)的位置。在
我的夢(mèng)想是擁有這樣的東西:erasing close atoms, cpu0 [######..............................] 13%
erasing close atoms, cpu1 [#######.............................] 15%
erasing close atoms, cpu2 [######..............................] 13%
erasing close atoms, cpu3 [######..............................] 14%
隨著函數(shù)中循環(huán)的進(jìn)行,每個(gè)條都在移動(dòng)。但是我得到了一個(gè)連續(xù)的
等等,填滿了我的終端窗口。在
下面是調(diào)用函數(shù)的主要python腳本:
^{pr2}$
下面是函數(shù)eraseCloseAtoms():import numpy as np
import click
def eraseCloseAtoms(protein, atoms, cell, spacing=2, dmin=1.4, output=None):
print 'just need to erase close atoms'
if dmin > spacing:
print 'the spacing needs to be larger than dmin'
return
grid = [int(cell[0] / spacing), int(cell[1] / spacing), int(cell[2] / spacing)]
selected = list(atoms)
with click.progressbar(length=len(atoms), label='erasing close atoms') as bar:
for i, atom in enumerate(atoms):
bar.update(i)
erased = False
coord = np.array(atom[6])
for ix in [-1, 0, 1]:
if erased:
break
for iy in [-1, 0, 1]:
if erased:
break
for iz in [-1, 0, 1]:
if erased:
break
for j in protein:
protCoord = np.array(protein[int(j)][6])
trueDist = getMinDist(protCoord, coord, cell, vectors)
if trueDist <= dmin:
selected.remove(atom)
erased = True
break
if output is None:
return selected
else:
output.put(selected)
總結(jié)
以上是生活随笔為你收集整理的python progressbar 多行_使用单击.progressbar在Python中使用多处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java配置出现的问题解释_java S
- 下一篇: python 小波去噪,用Pywavel