2013년 12월 17일 화요일

[Python] Progress bar class

Here is a little class that lets you present percent complete information in the form of a progress bar using the '#' character to represent completed portions, space to represent incomplete portions, and the actual percent done (rounded to integer) displayed in the middle:

[############# 33%                               ]

When you initialize the class, you specify the minimum number (usually 0), the maximum number (your file size, for example), and the number of characters wide you would like the progress bar to be. Note that width includes the brackets [] on the ends of the progress bar as well.

You'd probably want to use this in conjuction with the curses module, or something like that so you can over-write the same portion of the screen to make your updates 'animated'.


Source:

class progressBar:
        def __init__(self, minValue = 0, maxValue = 10, totalWidth=12):
                self.progBar = "[]"   # This holds the progress bar string
                self.min = minValue
                self.max = maxValue
                self.span = maxValue - minValue
                self.width = totalWidth
                self.amount = 0       # When amount == max, we are 100% done
                self.updateAmount(0)  # Build progress bar string

        def updateAmount(self, newAmount = 0):
                if newAmount < self.min: newAmount = self.min
                if newAmount > self.max: newAmount = self.max
                self.amount = newAmount

                # Figure out the new percent done, round to an integer
                diffFromMin = float(self.amount - self.min)
                percentDone = (diffFromMin / float(self.span)) * 100.0
                percentDone = round(percentDone)
                percentDone = int(percentDone)

                # Figure out how many hash bars the percentage should be
                allFull = self.width - 2
                numHashes = (percentDone / 100.0) * allFull
                numHashes = int(round(numHashes))

                # build a progress bar with hashes and spaces
                self.progBar = "[" + '#'*numHashes + ' '*(allFull-numHashes) + "]"

                # figure out where to put the percentage, roughly centered
                percentPlace = (len(self.progBar) / 2) - len(str(percentDone))
                percentString = str(percentDone) + "%"

                # slice the percentage into the bar
                self.progBar = self.progBar[0:percentPlace] + percentString +
self.progBar[percentPlace+len(percentString):]

        def __str__(self):
                return str(self.progBar)

홈페이지 jQuery 라이브러리에서 CVE-2019-11358 취약점 패치 여부 확인 방법

현재 홈페이지에서 사용 중인 jQuery 라이브러리가 CVE-2019-11358 취약점 패치를 적용했는지 확인하는 방법은 다음과 같습니다. 1. jQuery 버전 확인 홈페이지 소스 코드를 확인하여 jQuery 라이브러리 버전을 직접 확인합니다. 웹 ...