关于学习在python中使用进度条的信息

关于学习在python中使用进度条的信息首先要明白一点进度条都属于图形界面,需要选择图形界面的模块,我自己学的tkinter,pygame,pyqt5

本文目录一览:

python能够编写圆形进度条吗

首先要明白一点进度条都属于图形界面,需要选择图形界面的模块,我自己学的tkinter,pygame,pyqt5

进度条都是绘制出来的

关于学习在python中使用进度条的信息

python和selenium怎么判断进度条

phython:

首先利用pip快速安装第三方库,tqdm

使用tqdm的函数之前需要导入qdm库

在tqdm的应用中,直接在for结构上,添加一个tdqm()即可。

执行上一步的操作,就可以观察到进度条。

selenium:

拿到浏览器滚动条的js代码,然后执行,就可以看到进度条

.通过模拟键盘的形式去滚动屏幕,就可以看到进度条

其中通过 driver.execute_script()执行js代码时,可以用两个语法,语法:scrollBy(x,y)和语法:scrollBy(x,y

Python实现多进程+进度条显示

  之前在写繁体字转简体字的时候,由于数据量比较大,所以用了多进程来实现。其实我对多进程/多线程的认识只是了解概念,第一次看到实际的应用是在BDCI-OCR的项目中,作者用多进程进行图像处理。毫无疑问,并行计算能显著地减少运行时间。

那么为什么用多进程实现并行计算(多核任务),不用多线程呢?

引用链接

  网上有很多实现多进程的示例,我只记录自己用过的。

  这里我用的是pool.apply_async(),是异步非阻塞的方法,可以理解为:不用等待当前进程执行完毕,随时根据系统调度来进行进程切换。当然,还有其他方法,网上有很多资料,我就不赘述了。

  从运行结果中可以发现:因为cpu最大核心数是8,所以前8个任务的进程id都不一样,任务9的进程id与任务2的相同,即任务2执行结束后再执行任务9,依此类推。

  模拟的事件:共需处理10个任务,每个任务执行时间为5秒(5 * time.sleep(1))

参考链接

  发现:因为我的cpu是8核,所以10个任务的多进程耗时约为 2×单任务耗时 。

  在查阅相关资料时发现,多进程在实际使用的时候有 单参数 和 多参数 之分,那么多参数和单参数的优缺点分别是什么呢?

python怎么输出进度条的效果

单线程阻塞方式是看不到进度条滚动,先看看threading模块吧,run函数里p.start()兼起动一另个工作线程就要马上返回,工作线程结束的地方才调用p.stop().

python中怎么用控制台使用方法

本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧。分享给大家供大家参考。具体方法如下:

首先,进度条和一般的print区别在哪里呢?

答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,之前已经通过stdout输出的东西依旧保留,而且保证我们在下面看到最新的输出结果。

进度条不然,我们必须再原地输出才能保证他是一个进度条,否则换行了怎么还叫进度条?

最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条即可实现,新的更长的进度条把旧的短覆盖,就形成了动画效果。

可以想到那个转义符了吧,那就是\ r。

转义符r就可以把光标移动到行首而不换行,转义符n就把光标移动到行首并且换行。

在python中,输出stdout(标准输出)可以使用sys.stdout.write

例如:

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

#!/usr/bin/env python

# -*- coding=utf-8 -*-

#Using GPL v2

#Author: ihipop@gmail.com

##2010-10-27 22:07

“””

Usage:

Just A Template

“””

from __future__ import division

import sys,time

j = ‘#’

if __name__ == ‘__main__’:

for i in range(1,61):

j += ‘#’

sys.stdout.write(str(int((i/60)*100))+’% ||’+j+’-‘+”\r”)

sys.stdout.flush()

time.sleep(0.5)

print

第二种思路是用转义符\b

转义符\b是退格键,也就是说把输出的光标往回退格子,这样就可以不用+=了,例如:

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#!/usr/bin/env python

# -*- coding=utf-8 -*-

#Using GPL v2

#Author: ihipop@gmail.com

#2010-10-27 22:07

“””

Usage:

Just A Template

“””

from __future__ import division

import sys,time

if __name__ == ‘__main__’:

for i in range(1,61):

sys.stdout.write(‘#’+’-‘+”\b\b”)

sys.stdout.flush()

time.sleep(0.5)

print

光标回退2格,写个#再回退,再写,达到增长的目的了

不过写这么多似乎是废话,在耳边常常听到一句话:那就是不要重复造轮子。实际上python有丰富发lib帮你实现这个东西,你完全可以把心思放在逻辑开发上而不用注意这些小细节

下面要介绍的就是这个类“progressbar”,使用easy_install可以方便的安装这个类库,其实就一个文件,拿过来放到文件同一个目录下面也直接可以import过来

如下图所示:

下面就是基本使用举例:

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

#!/usr/bin/env python

# -*- coding=utf-8 -*-

#Using GPL v2

#Author: ihipop@gmail.com

#2010-10-27 22:53

“””

Usage:

Just A Template

“””

from __future__ import division

import sys,time

from progressbar import *

total = 1000

#基本用法

progress = ProgressBar()

for i in progress(range(total)):

time.sleep(0.01)

pbar = ProgressBar().start()

for i in range(1,1000):

pbar.update(int((i/(total-1))*100))

time.sleep(0.01)

pbar.finish()

#高级用法

widgets = [‘Progress: ‘, Percentage(), ‘ ‘, Bar(marker=RotatingMarker(‘-=’)),

‘ ‘, ETA(), ‘ ‘, FileTransferSpeed()]

pbar = ProgressBar(widgets=widgets, maxval=10000000).start()

for i in range(1000000):

# do something

pbar.update(10*i+1)

time.sleep(0.0001)

pbar.finish()

Python

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

# coding:utf-8

import sys

import time

from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \

FileTransferSpeed, FormatLabel, Percentage, \

ProgressBar, ReverseBar, RotatingMarker, \

SimpleProgress, Timer

examples = []

def example(fn):

try:

name = ‘Example %d’ % int(fn.__name__[7:])

except:

name = fn.__name__

def wrapped():

try:

sys.stdout.write(‘Running: %s\n’ % name)

fn()

sys.stdout.write(‘\n’)

except KeyboardInterrupt:

sys.stdout.write(‘\nSkipping example.\n\n’)

examples.append(wrapped)

return wrapped

@example

def example0():

pbar = ProgressBar(widgets=[Percentage(), Bar()], maxval=300).start()

for i in range(300):

time.sleep(0.01)

pbar.update(i + 1)

pbar.finish()

@example

def example1():

widgets = [‘Test: ‘, Percentage(), ‘ ‘, Bar(marker=RotatingMarker()),

‘ ‘, ETA(), ‘ ‘, FileTransferSpeed()]

pbar = ProgressBar(widgets=widgets, maxval=10000000).start()

for i in range(1000000):

# do something

pbar.update(10 * i + 1)

pbar.finish()

@example

def example2():

class CrazyFileTransferSpeed(FileTransferSpeed):

“””It’s bigger between 45 and 80 percent.”””

def update(self, pbar):

if 45 pbar.percentage() 80:

return ‘Bigger Now ‘ + FileTransferSpeed.update(self, pbar)

else:

return FileTransferSpeed.update(self, pbar)

widgets = [CrazyFileTransferSpeed(), ‘ ‘, Bar(), ‘ ‘,

Percentage(), ‘ ‘, ETA()]

pbar = ProgressBar(widgets=widgets, maxval=10000000)

# maybe do something

pbar.start()

for i in range(2000000):

# do something

pbar.update(5 * i + 1)

pbar.finish()

@example

def example3():

widgets = [Bar(”), ‘ ‘, ETA(), ‘ ‘, ReverseBar(”)]

pbar = ProgressBar(widgets=widgets, maxval=10000000).start()

for i in range(1000000):

# do something

pbar.update(10 * i + 1)

pbar.finish()

@example

def example4():

widgets = [‘Test: ‘, Percentage(), ‘ ‘,

Bar(marker=’0′, left='[‘, right=’]’),

‘ ‘, ETA(), ‘ ‘, FileTransferSpeed()]

pbar = ProgressBar(widgets=widgets, maxval=500)

pbar.start()

for i in range(100, 500 + 1, 50):

time.sleep(0.2)

pbar.update(i)

pbar.finish()

@example

def example5():

pbar = ProgressBar(widgets=[SimpleProgress()], maxval=17).start()

for i in range(17):

time.sleep(0.2)

pbar.update(i + 1)

pbar.finish()

@example

def example6():

pbar = ProgressBar().start()

for i in range(100):

time.sleep(0.01)

pbar.update(i + 1)

pbar.finish()

@example

def example7():

pbar = ProgressBar() # Progressbar can guess maxval automatically.

for i in pbar(range(80)):

time.sleep(0.01)

@example

def example8():

pbar = ProgressBar(maxval=80) # Progressbar can’t guess maxval.

for i in pbar((i for i in range(80))):

time.sleep(0.01)

@example

def example9():

pbar = ProgressBar(widgets=[‘Working: ‘, AnimatedMarker()])

for i in pbar((i for i in range(50))):

time.sleep(.08)

@example

def example10():

widgets = [‘Processed: ‘, Counter(), ‘ lines (‘, Timer(), ‘)’]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(150))):

time.sleep(0.1)

@example

def example11():

widgets = [FormatLabel(‘Processed: %(value)d lines (in: %(elapsed)s)’)]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(150))):

time.sleep(0.1)

@example

def example12():

widgets = [‘Balloon: ‘, AnimatedMarker(markers=’.oOa href=””@*/a ‘)]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(24))):

time.sleep(0.3)

@example

def example13():

# You may need python 3.x to see this correctly

try:

widgets = [‘Arrows: ‘, AnimatedMarker(markers=’←↖↑↗→↘↓↙’)]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(24))):

time.sleep(0.3)

except UnicodeError:

sys.stdout.write(‘Unicode error: skipping example’)

@example

def example14():

# You may need python 3.x to see this correctly

try:

widgets = [‘Arrows: ‘, AnimatedMarker(markers=’◢◣◤◥’)]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(24))):

time.sleep(0.3)

except UnicodeError:

sys.stdout.write(‘Unicode error: skipping example’)

@example

def example15():

# You may need python 3.x to see this correctly

try:

widgets = [‘Wheels: ‘, AnimatedMarker(markers=’◐◓◑◒’)]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(24))):

time.sleep(0.3)

except UnicodeError:

sys.stdout.write(‘Unicode error: skipping example’)

@example

def example16():

widgets = [FormatLabel(‘Bouncer: value %(value)d – ‘), BouncingBar()]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(180))):

time.sleep(0.05)

@example

def example17():

widgets = [FormatLabel(‘Animated Bouncer: value %(value)d – ‘),

BouncingBar(marker=RotatingMarker())]

pbar = ProgressBar(widgets=widgets)

for i in pbar((i for i in range(180))):

time.sleep(0.05)

@example

def example18():

widgets = [Percentage(),

‘ ‘, Bar(),

‘ ‘, ETA(),

‘ ‘, AdaptiveETA()]

pbar = ProgressBar(widgets=widgets, maxval=500)

pbar.start()

for i in range(500):

time.sleep(0.01 + (i 100) * 0.01 + (i 400) * 0.9)

pbar.update(i + 1)

pbar.finish()

@example

def example19():

pbar = ProgressBar()

for i in pbar([]):

pass

pbar.finish()

try:

for example in examples:

example()

except KeyboardInterrupt:

sys.stdout(‘\nQuitting examples.\n’)

tqdm库,给你的Python代码加个进度条

tqdm在阿拉伯语中的意思是“进展”,是一个快速、扩展性强的进度条工具库,用户只需要封装任意的迭代器 tqdm(iterator)。

在迭代器上直接使用tqdm库

trange(i) 是对tqdm(range(i)) 特殊优化过的实例。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/23451.html

(0)
上一篇 2023-10-25
下一篇 2023-10-25

相关推荐

  • TiDB Architecture Team:挑战数据库的本质难题 | PingCAP 招聘季「终于解决」

    TiDB Architecture Team:挑战数据库的本质难题 | PingCAP 招聘季「终于解决」互联网时代,从衣食住行到社交娱乐,几乎所有的业务都离不开数据库服务的支撑,可以说关系数据库是信息社会中最无可替代的基础设施。作为一个基石组件,数据库系统之所以有重要的价值,其本质的原因在于数据库系统…

    2023-01-31
    151
  • 数据库 平台_想自己写个数据库

    数据库 平台_想自己写个数据库我还清楚记得,五年前的这个时候,当时还在豌豆荚,午后与刘奇和崔秋的闲聊关于未来数据库的想象,就像一粒种子一样,到了今天看起来也竟枝繁叶茂郁郁葱葱,有点感慨。按照惯例,五年是一个重要的节点,没有十年那…

    2023-02-14
    144
  • Python中的Ceil函数

    Python中的Ceil函数在编写Python程序时,我们常常需要对浮点数进行向上取整的操作,例如需要获取一组数据的上限值。要实现这种操作,我们可以使用Python中的Ceil函数。本文将对Python中的Ceil函数进行详细介绍,让读者了解该函数的用法和应用场景。

    2024-08-16
    29
  • 自我介绍[亲测有效]

    自我介绍[亲测有效]Hello,博客园的大佬们大家好,我是江南,目前在一家国内一家上市软件公司work,现在主要在研究数据分析这块,在博客园潜水好多年了,也非常感谢博客园各位前辈们的指导(据不完全统计,本人百分之五十的b

    2023-03-09
    145
  • Python编程实例:用Python解析数据

    Python编程实例:用Python解析数据数据解析是指将一些结构化或半结构化数据从一种形式转换为另一种形式的过程。其中结构化数据与半结构化数据是指具有非常明显固定格式的数据,例如XML、JSON等;而非结构化数据则是指不具有固定格式的数据,例如文本、图片等。

    2024-03-25
    81
  • sql注入漏洞修复方法_注入sql注入

    sql注入漏洞修复方法_注入sql注入
    我们都是善良的银!一生戎码只为行侠仗义,知道这个不是为了做啥非法的事,只是知道小偷怎么偷东西才能更好地防范。 SQL注入(SQL Injection),指将…

    2023-04-08
    153
  • Python选择按钮应用实例

    Python选择按钮应用实例选择按钮是WEB页面常用的组件之一,是一种用于显示选项(通常是一系列单选选项)的按钮。Python提供了丰富的选项和库来帮助我们快速地构建高效的选择按钮应用程序。让我们通过下面的应用来演示选择按钮的基本用法:

    2024-01-08
    100
  • 这8种常见的SQL错误用法,80%的人还在使用[亲测有效]

    这8种常见的SQL错误用法,80%的人还在使用[亲测有效]点点这个链接免费获取:【推荐】2020年最新Java电子书集合.pdf(吐血整理) >>> 1、LIMIT 语句 分页查询是最常用的场景之一,但也通常也是最容易出问题的地方。比如对于下面简单的语句,…

    2023-02-12
    143

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注