У меня есть сценарий python, который копирует папки и файлы, существующие в выбранном месте. Эта задача работает отлично, теперь я хочу отображать индикатор выполнения при копировании.
Я использовал пакет tqdm , который отображает индикатор выполнения в консоли, и он работает хорошо, но проблема в том, что он отображает индикатор выполнения для каждого файла и каждый раз просматривает все существующие файлы.
пример: если папка включает 128 файлов, он будет отображать индикатор выполнения 128 раз, как это
100% --------- 128/128 100% --------- 128/128
я хочу, чтобы индикатор выполнения отображался 1 раз для всех копируемых файлов.
код:
i=0
j=0
z=0
for dirpath, dirnames, files in os.walk(src):
print(f'Found directory: {dirpath}')
if len(dirnames)==0 and len(files)==0:
print("this directory is empty")
pass
for file in files:
full_file_name = os.path.join(dirpath, file)
if os.path.join(dirpath) == src:
if file.endswith("pdf"):
if not os.path.exists(dst2):
os.mkdir(dst2)
else:
print("the path alredy exist")
shutil.copy(full_file_name, dst2)
i+=1
elif file.endswith("docx") or file.endswith("doc"):
shutil.copy(full_file_name, dst)
j+=1
elif os.path.join(dirpath)== src2:
if file.endswith("pdf"):
numfile = len(files)
# i think the for loop must not be in this part.
for z in enumerate(tqdm(numfile)):
sleep(.1)
shutil.copy(full_file_name, dst3)
z+=1