Python:如何在我的函数中使用进度条

时间:2012-10-12 12:37:59

标签: python performance coding-style progress-bar easy-install

我正在使用以下功能:

def LAS2TXTGridClip(inFile,poly,MinPoints=1):
        sf = shapefile.Reader(poly) #open shpfile
        sr = sf.shapeRecords()
        poly_filename, ext = path.splitext(poly)
        inFile_filename = os.path.splitext(os.path.basename(inFile))[0]
        for i in xrange(len(sr)):
            verts = np.array(sr[i].shape.points,float)
            record = sr[i].record[0]
            inside_points = [p for p in lasfile.File(inFile,None,'r') if pnpoly(p.x, p.y, verts)]
            if len(inside_points) >= MinPoints:
                file_out = open("{0}_{1}_{2}.txt".format(poly_filename, inFile_filename, record), "w")
                for p in inside_points:
                    file_out.write("%s %s %s %s %s %s %s %s %s %s %s" % (p.x, p.y, p.z, p.intensity,p.return_number,p.number_of_returns,p.scan_direction,p.flightline_edge,p.classification,p.scan_angle,record)+ "\n")
                file_out.close()

其中for i in xrange(len(sr)):函数将被处理多次。 len(sr)约为50万,我希望插入一个进度条,以便知道我需要等待的时间(星期五)。我有以下问题:

  1. Windows OS上python 27的“最佳且最简单”的进度条 64位?
  2. 我发现progressbar module但我有问题要使用 在此步骤之后easy_install进度条。
  3. 哪里是插入进度条的最佳位置?

1 个答案:

答案 0 :(得分:4)

您对模块progressbar有什么问题?这是非常好的解决方案。

$ cd progressbar-2.2/
$ sudo python setup.py install
...blablabla...
$ python
>>> from progressbar import ProgressBar
>>> pbar = ProgressBar(10)
>>> for i in range(10):
...     pbar.update(i+1)
... 
100% |######################################################################|