我怎样才能不要求安装 tqdm?
How can I not require tqdm to be installed?
我想在我的脚本中使用 tqdm 但不要求其他人使用它,如果他们还没有安装的话。
我找到了这个:
try:
import tqdm
except ImportError:
tqdm = None
但我不确定如何使用 tqdm==None
:
with tqdm.tqdm(total=totalSize) as pbar:
其中 totalSize
是文件大小(或遍历多个文件时文件大小的总和)。
我通常的做法是添加以下垫片:
try:
from tqdm import tqdm
except ImportError:
def tqdm(iterator, *args, **kwargs):
return iterator
现在,您可以始终使用 tqdm 而不必担心它是否存在,因为回退将通过您正在迭代的内容,忽略所有与 tqdm 相关的选项。
for item in tqdm(items):
action(item)
诚然,您的用法(使用 with
)与这种方法不兼容 - 但我会把它留在这里供人们像我通常使用的那样在 for 循环中使用它。
在 tqdm 的 documentation 和我的 try/except 逻辑的帮助下,我有这个工作:
try:
import tqdm
except ImportError:
tqdm = None
if (tqdm == None):
pbar = None
else:
pbar = tqdm.tqdm(total=totalSize)
#... inside the loop processing my file[s]...
if (pbar):
pbar.update(len(line))
我想在我的脚本中使用 tqdm 但不要求其他人使用它,如果他们还没有安装的话。
我找到了这个:
try:
import tqdm
except ImportError:
tqdm = None
但我不确定如何使用 tqdm==None
:
with tqdm.tqdm(total=totalSize) as pbar:
其中 totalSize
是文件大小(或遍历多个文件时文件大小的总和)。
我通常的做法是添加以下垫片:
try:
from tqdm import tqdm
except ImportError:
def tqdm(iterator, *args, **kwargs):
return iterator
现在,您可以始终使用 tqdm 而不必担心它是否存在,因为回退将通过您正在迭代的内容,忽略所有与 tqdm 相关的选项。
for item in tqdm(items):
action(item)
诚然,您的用法(使用 with
)与这种方法不兼容 - 但我会把它留在这里供人们像我通常使用的那样在 for 循环中使用它。
在 tqdm 的 documentation 和我的 try/except 逻辑的帮助下,我有这个工作:
try:
import tqdm
except ImportError:
tqdm = None
if (tqdm == None):
pbar = None
else:
pbar = tqdm.tqdm(total=totalSize)
#... inside the loop processing my file[s]...
if (pbar):
pbar.update(len(line))