【发布时间】:2021-08-23 10:58:09
【问题描述】:
我是 python 新手,想知道如何设置函数运行的特定时间。
考虑到这里我有一个名为 df 的包含 891 行的数据框,它的列名 body_text 我想通过一行数据帧并将它们存储到一个名为 df_summary 的新数据帧中。在这里,我的目标是设置一个函数 summary 最多运行 2 分钟,如果它可以在 2 分钟之前完成并进入下一次迭代,那就太好了。如果不是,我想调用另一个函数名称 preprocess 而不是无法在 120 秒内完成的函数 summary。
假设我们已经创建了具有 891 行和列名 body_text 的 df_summary。这是我的代码+一些伪代码,因为我不知道如何准确地编写它:
import time
for i in tqdm(range(0,891)):
# code to detect running time here
df_summary['body_text'][i] = summary(df['body_text'][i])# perform the summary function with at most 120s
# when 120s is over but the summary function cannot finish than perform a preprocessing function instead and move to the next iteration
df_summary['body_text'][i] = preprocess(df['body_text'][i])
请注意,如果函数摘要最多可以运行 120 秒或低于该限制时间,则它不会运行回退函数 preproces,然后移动到下一次迭代。
我怎样才能做到这一点?任何帮助将不胜感激。
【问题讨论】:
-
不是100%对应我的情况。
-
缺少多少 %?
-
我没有看到他们调用了回退函数...你能提出一个与我的情况相对应的解决方案吗?
-
我建议使用我已链接的问题中显示的解决方案之一,并在顶部添加用于调用后备函数的代码。
-
其实可以在异常情况下添加回退功能?我听不懂他们的代码...