复制文件时在控制台显示进度条。在 python 中使用 tqdm
display progress bar in console while copying files. using tqdm in python
我有一个 python 脚本,它从源文件夹中读取并使用 shutil 包将现有文件复制到指定的目标中。
我想在复制这些文件时显示进度条,所以我尝试导入 tqdm 包,但是当我尝试 运行 程序崩溃并显示以下错误时:
for obj in iterable : typeError: 'int' object is not iterable
代码:
#packages for list and copy folders & files.
import calendar
import os
import shutil
from os import path
from datetime import date
#packags for progressBar
from tqdm import tqdm
from time import sleep
def main():
copy("O:/PDF/")
dst3 = "C:/Users/gmatta/Documents"
def copy(src):
src2 = os.path.join(src, datefile)
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)== src2:
if file.endswith("pdf"):
numfile = len(files)
# the problem is in the 2 lines below
for z in enumerate(tqdm(numfile)):
sleep(.1)
# #copy files PDF TO dest
shutil.copy(full_file_name, dst3)
z+=1
if __name__=="__main__":
main()
tqdm
expects an iterable argument。
在您代码的这一行中
for z in enumerate(tqdm(numfile)):
numfile
是一个整数。
也许尝试使用 range(numfile)
?
我有一个 python 脚本,它从源文件夹中读取并使用 shutil 包将现有文件复制到指定的目标中。
我想在复制这些文件时显示进度条,所以我尝试导入 tqdm 包,但是当我尝试 运行 程序崩溃并显示以下错误时:
for obj in iterable : typeError: 'int' object is not iterable
代码:
#packages for list and copy folders & files.
import calendar
import os
import shutil
from os import path
from datetime import date
#packags for progressBar
from tqdm import tqdm
from time import sleep
def main():
copy("O:/PDF/")
dst3 = "C:/Users/gmatta/Documents"
def copy(src):
src2 = os.path.join(src, datefile)
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)== src2:
if file.endswith("pdf"):
numfile = len(files)
# the problem is in the 2 lines below
for z in enumerate(tqdm(numfile)):
sleep(.1)
# #copy files PDF TO dest
shutil.copy(full_file_name, dst3)
z+=1
if __name__=="__main__":
main()
tqdm
expects an iterable argument。
在您代码的这一行中
for z in enumerate(tqdm(numfile)):
numfile
是一个整数。
也许尝试使用 range(numfile)
?