我正在编写一个按顺序执行一组任务的程序。每个任务都是一个输出新文件的函数,但是如果文件名已经存在,则任何给定的任务都不应该执行。我发现自己一遍又一遍地编写这种代码:
task1_fname = task1()
# come up with filename for next task
task2_fname = "task2.txt"
if not os.path.isfile(task2_fname):
# task2 might depend on task1's output, so it gets task1's filename
task2(task1_fname)
task3_fname = "task3.txt"
if not os.path.isfile(task3_fname):
task3(...)
基本思想是,如果文件存在(并且理想情况下是非空的),那么您不应该执行生成该文件的任务。
os.path.isfile
无需每次都编写调用的最佳 Pythonic 方式是什么?装饰者可以更简洁地表达这一点吗?或类似的东西:
with task2(task1_fname):
# continue to next task
有任何想法吗?