在 Python 中记录 `enumerate` 函数的进度
Logging progress of `enumerate` function in Python
我正在优化 Python(版本 2.7;由于我需要使用旧模块而受到限制)在 AWS 上 运行ning 的脚本,并试图确定我有多少资源我正在建设的环境中需要。为此,我在脚本 运行 时向控制台记录了相当多的信息,并对不同的资源配置进行了基准测试。
瓶颈之一是包含 32,000 个项目的列表,这些项目 运行 通过 Python enumerate
函数。这需要很长时间才能 运行 并且我的脚本在完成之前看不到它的进度。我假设枚举以某种方式循环遍历项目,所以我认为我可以在该循环中注入日志记录或打印。我知道这是 'hacky' 但它现在适合我,因为它是临时的,而我 运行 测试。
我找不到函数 运行s 的来源(我确实在 numba
模块中找到了一个 Enumerate class。我尝试在那里打印但它不起作用).我知道它是 __builtin__ module
的一部分,我也很难追踪到它,并尝试了几种技术来找到它的确切位置,例如打印 __builtin__.__file__
但无济于事。
我的问题是,a) 你们能帮我确定函数的位置吗?这是否是一个好方法?或者 b) 如果有更好的方法。
感谢您的帮助!
我建议你使用 tqdm 模块。 tqdm
tqdm 模块用于枚举进度的可视化。它适用于可迭代对象(长度已知或未知)。
通过扩展 tqdm class,您可以在任何所需的迭代次数后记录所需的信息。您可以在 tqdm class 文档字符串中找到更多信息。
我正在优化 Python(版本 2.7;由于我需要使用旧模块而受到限制)在 AWS 上 运行ning 的脚本,并试图确定我有多少资源我正在建设的环境中需要。为此,我在脚本 运行 时向控制台记录了相当多的信息,并对不同的资源配置进行了基准测试。
瓶颈之一是包含 32,000 个项目的列表,这些项目 运行 通过 Python enumerate
函数。这需要很长时间才能 运行 并且我的脚本在完成之前看不到它的进度。我假设枚举以某种方式循环遍历项目,所以我认为我可以在该循环中注入日志记录或打印。我知道这是 'hacky' 但它现在适合我,因为它是临时的,而我 运行 测试。
我找不到函数 运行s 的来源(我确实在 numba
模块中找到了一个 Enumerate class。我尝试在那里打印但它不起作用).我知道它是 __builtin__ module
的一部分,我也很难追踪到它,并尝试了几种技术来找到它的确切位置,例如打印 __builtin__.__file__
但无济于事。
我的问题是,a) 你们能帮我确定函数的位置吗?这是否是一个好方法?或者 b) 如果有更好的方法。
感谢您的帮助!
我建议你使用 tqdm 模块。 tqdm
tqdm 模块用于枚举进度的可视化。它适用于可迭代对象(长度已知或未知)。
通过扩展 tqdm class,您可以在任何所需的迭代次数后记录所需的信息。您可以在 tqdm class 文档字符串中找到更多信息。