gpt4 book ai didi

python - 显示找到的文件数和进度

转载 作者:太空狗 更新时间:2023-10-30 01:37:04 25 4
gpt4 key购买 nike

我目前有一个代码可以按关键字搜索文件。有没有办法在代码运行时显示找到的文件数和/或显示进度?我有一个大目录要搜索,如果可能的话,我想看看进度。我目前拥有的代码没有显示太多信息或处理时间。

import os
import shutil
import time
import sys

def update_progress_bar():
print '\b.',
sys.stdout.flush()

print 'Starting ',
sys.stdout.flush()

path = '//server/users/'
keyword = 'monthly report'

for root, dirs, files in os.walk(path):
for name in files:
if keyword in name.lower():
time.sleep(0)
update_progress_bar()

print ' Done!'

最佳答案

这很简单,但为什么不只保留一个计数器呢?

files_found = 0
for root, dirs, files in os.walk(path):
for name in files:
if keyword in name.lower():
files_found += 1
time.sleep(0)
update_progress_bar()

print "Found {}".format(files_found)

编辑:如果你想计算进度,你应该首先计算出你将迭代多少个文件。如果您使用嵌套列表理解,您可以将 os.walk 发出的每个三元组中的每个 files 展平。

filenames = [name for file in [files for _, _, files in os.walk(path)]]
num_files = float(len(filenames))

现在,在每个步骤中,您可以将进度描述为当前步骤数除以文件数。换句话说,使用 enumerate获取步数:

files_found = 0
for step, name in enumerate(filenames):
progress = step / num_files
print "{}% complete".format(progress * 100)
if keyword in name.lower():
files_found += 1
time.sleep(0)
update_progress_bar()

如果您想在如何打印进度方面更有创意,那是另一个问题。

关于python - 显示找到的文件数和进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41388897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com