首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让os.system('cls')更快

让os.system('cls')更快
EN

Stack Overflow用户
提问于 2020-04-04 09:52:28
回答 2查看 274关注 0票数 0

考虑以下代码:

代码语言:javascript
复制
import time
import os
for a in range(10, 0, -1): # total time is actually 1 second. no float allowed for arg 3.
    print(a)
    time.sleep(0.X) #unknown time...
    os.system('cls')

在程序开始时,a一次减少1/10秒。

问题:os.system('cls')处理时间超过0.1秒。有什么解决方案可以让它更快吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-05 06:47:06

我知道你的问题是for循环运行了超过1秒,因为os.system('cls')不是即时的:

您可以使用Python中的timeit模块来测试这一点:

不使用os.system('cls')

代码语言:javascript
复制
import time
import timeit
import os
start = timeit.default_timer()
for a in range(10, 0, -1): # total time is actually 1 second. no float allowed for arg 3.
    print(a)
    time.sleep(0.1) #unknown time...
stop = timeit.default_timer()
print('Time: ', stop - start)  

输出:

代码语言:javascript
复制
10
9
8
7
6
5
4
3
2
1
Time:  1.0021432

使用os.system('cls')

代码语言:javascript
复制
Time:  1.7151739000000001

您无法解决此问题,因为即使没有os.system('cls'),它也需要1秒以上的时间。函数os.system('cls')本身已经花费了大约0.1649219秒来执行。您不能使Python库函数更快。

票数 0
EN

Stack Overflow用户

发布于 2020-04-08 00:30:04

实际上,您可以使cmd窗口更小,以减少处理时间。它起作用了!要生成和清除的像素较少,这使其成为理想的选择。

代码语言:javascript
复制
def count():
    for a in range(10, 0, -1):
        print(a)
        time.sleep(0.1) #I know I am breaking the DO NOT USE TIME.SLEEP rule.
        os.system('cls')
count()

如上所述,使用time.sleep从来都不可靠,但如果缩小窗口,它就接近了。(我认为它不一定要准确。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61022856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档