Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何为无限循环创建光标或加载指示器_Python 3.x - Fatal编程技术网

Python 3.x 如何为无限循环创建光标或加载指示器

Python 3.x 如何为无限循环创建光标或加载指示器,python-3.x,Python 3.x,我正在从Instagram中删除当前的follow请求。我有一个主无限循环,它发出请求并在完成时打印OK。我想在下载名称时显示动画光标或加载进度 while 1: response = requests.get(IG_CFR_PAGE, headers=headers(""), params=params, cookies=cookies) if response.status_code == 200: cfr

我正在从Instagram中删除当前的follow请求。我有一个主无限循环,它发出请求并在完成时打印OK。我想在下载名称时显示动画光标或加载进度

    while  1:
        response = requests.get(IG_CFR_PAGE, headers=headers(""), params=params, cookies=cookies)
        if response.status_code == 200:
            cfr = response.json()
            for entry in cfr["data"]["data"]:
                #print(entry["text"])
                usernames.append(entry["text"])
            if cfr["data"]["cursor"]!= None:
                params['cursor'] = cfr["data"]["cursor"]
                time.sleep(1)
            else:
                break
        else:
           print(response.status_code)
           print("Error in request .... aborting")
           break
print("ok")
我查找了
tqdm
,但它需要一个iterable。在我的例子中,我只是在第
行中循环JSON键,以便在cfr[“data”][“data”]:
中输入内容,所以我想我不能使用它。我只需要一些建议,知道我应该用什么来表示这个脚本实际上在做什么。我只是需要建议或伪代码是好的,发送到一个正确的方向我。。。实际的编程代码是不需要的,因为我将自己这样做


谢谢

据我所知,大多数允许您在Python中更改鼠标光标的函数只能从各种GUI模块中获得,其中大多数是流行的,例如,或其他模块

问题是,大多数这些可能只有在您创建了GUI窗口时才起作用,如果您没有使用相同的GUI或任何GUI,这可能是不必要的,或者不是一个好主意。即使如此,有些可能只在鼠标指针悬停在GUI中的某个小部件上时生效

注:

  • 我以前只使用
    pygame.cursors
    尝试过这样做(没有成功)。它可能很方便,因为它甚至允许您使用字符串创建自定义形状,或者使用系统光标。但是,如果您没有先调用
    pygame.display.init()
    而尝试执行此操作,则会显示
    pygame.error:视频系统未初始化。我尝试创建一个窗口并设置一个光标,但似乎没有效果
  • 在谷歌上快速搜索其他设置动画光标的方法后,我发现了一个新的方法,如果你在windows上的话,它可能会提供一些见解

总的来说,使用终端动画可能更好、更容易,因此 这是尝试在终端窗口中加载动画的基本答案:

(当然,对于不确定长度的循环,存储完成百分比等是没有意义的,因此这只是以任意速度设置动画,并在到达终点时重复)

i,w,d=0,20,10000
尽管如此:
#做任何事
#除了最后一条,没有打印语句
i=(i+1)%(w*d)
l=i//d
打印(“\r处理…”“+”“*l+”█" + " "*(w-l-1)+“|”,结束=”)
i
用于迭代,
w
是条的长度,
d
用于创建某种“延迟”,这样条不会在每次迭代时改变,而是以较慢的(可见的)速度变化

编辑:重要注意事项:重置光标位置的
'\r'
在每个终端中都不起作用-它可能仍然会移动到下一次打印的新行(),而不是同一行的开头-但在系统终端/cmd等中这很可能很好…在空闲状态下运行此命令可能不是一个好主意:p

编辑2:基于您的评论,针对闪烁的指示器(使用相同的方法)-

i,d=0,300000
尽管如此:
i=(i+1)%d
打印(“\r正在工作…”+(“█“如果i
你是什么意思?gif或只是……@Xyndra没有命令行中的动画只是
输入tqdm(cfr[“data”][“data”])
是可以的。因为它是可编辑的(写在
for
循环中),它可以被传递到tqdm,不是吗?@C.K.它没有给出错误我已经试过了。@SulemanElahi我想知道给出了什么样的错误消息,你能证明吗?我喜欢这个主意,但没有一个条是可以的,因为它不是这样工作的。如果我能做到这一点”█“光标闪烁-那么这将是一个完美的解决方案。有什么想法吗?当然,我在回答中添加了一个替代方案,它仍然使用
print()
来制作“光标”,实际上不会使终端光标闪烁