Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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 如何计算进度_Python_Python 3.x - Fatal编程技术网

Python 如何计算进度

Python 如何计算进度,python,python-3.x,Python,Python 3.x,我正在构建一个gui,在其中我需要向用户显示一个进度条,显示文件从internet下载的量。我成功地使用了TQM并将其显示到控制台。但是我在将其传递给gui时遇到了一个问题 我面临的问题是用tqdm的百分比值更新进度条。由于tqdm包装了它的进度条,所以我无法将百分比作为整数或浮点数获取。我尝试了bar\u格式='{percentage:.0f}。这只给了我百分比,但仅此而已。它仍然不会将百分比本身作为整数或浮点返回 这是显示进度条并下载文件的循环: from requests import g

我正在构建一个gui,在其中我需要向用户显示一个进度条,显示文件从internet下载的量。我成功地使用了TQM并将其显示到控制台。但是我在将其传递给gui时遇到了一个问题

我面临的问题是用tqdm的百分比值更新进度条。由于tqdm包装了它的进度条,所以我无法将百分比作为整数或浮点数获取。我尝试了
bar\u格式='{percentage:.0f}
。这只给了我百分比,但仅此而已。它仍然不会将百分比本身作为整数或浮点返回

这是显示进度条并下载文件的循环:

from requests import get
from bs4 import BeautifulSoup
from os import path
import sys
from tqdm import tqdm

folderPath = 'C:/Users/Sammy/Desktop/'

url = 'http://www.karavalimunjavu.com/'
res = get(url)
soup = BeautifulSoup(res.text, 'lxml')

# Downloading images.
for images in soup.select('img[data-big]'):
    imgDownload = get(url+images.get('data-big'), stream=True)
    file_size = int(imgDownload.headers.get("Content-Length", None))
    progress = tqdm(total=file_size, file=sys.stdout, bar_format='{percentage:.0f}')
    with open(path.join(folderPath, pageNo), 'wb') as f:
        for data in imgDownload:
            f.write(data)
            progress.update(len(data))
        f.close()
        progress.close()
    break

如何让它以整数的形式输出百分比?

如果我仔细看一下,这个问题的答案非常简单

from requests import get
from bs4 import BeautifulSoup
from os import path

folderPath = 'C:/Users/Sammy/Desktop/'

url = 'http://www.karavalimunjavu.com/'
res = get(url)
soup = BeautifulSoup(res.text, 'lxml')

for images in soup.select('img[data-big]'):
    pageNo = path.basename(images.get('data-big'))[15:]
    imgDownload = get(url+images.get('data-big'), stream=True)
    file_size = int(imgDownload.headers.get("Content-Length", None))
    progress = 0  # Initialise progress variable
    with open(path.join(folderPath, pageNo), 'wb') as f:
        for data in imgDownload:
            f.write(data)
            progress += len(data)
            print((progress/file_size)*100)  # The logic to print out the percentage
        f.close()
    break

请提供一个我的坏消息。提供。这与TQM有什么关系?您拥有总的
文件大小
,下载的数据将使用
len(data)
逐步更新。你不能算一下吗?gui代码在哪里?@musicamante哦,是的,刚刚算出来。我真傻。