我倾向于经常使用 Python 的“with”语句。主要用于在我将一些文件符号链接或复制到目录后清理目录,因为即使 python 脚本崩溃,任务仍然会执行。这是我的函数的一个示例,可以与“with”语句一起使用。
@contextmanager
def use_symlink(orig, dest):
os.symlink(orig, dest)
try:
yield
finally:
os.unlink(link)
我使用这些语句的方式往往会很快堆积起来。
#Off to an adventure
with use_symlink(a, b):
with use_symlink(c, b):
with use_symlink(d, b):
with working_dir(dir1):
#do something
with working_dir(dir2):
#do something that creates file dir2_file1, dir2_file2
with use_symlink(dir2_file1, b):
with use_symlink(dir2_file2, b):
with working_dir(b):
#Do the last thing
#Home safely
有没有更好的方法可以像强大的“with”语句一样轻松和安全地完成上述操作?