如何在没有数据库的情况下使用python事务?

2024-06-28 19:36:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码中有两行,第一行是os.unlink,第二行是os.symlink。比如:

os.unlink(path)
os.symlink(new_path)

顺序不应更改,问题是,有时它会取消文件链接(换句话说,它会删除其快捷方式),但第二行无法创建符号链接(对某些寻址问题执行)

我的问题是:是否有任何像我们在数据库中的那个一样的全事务或非事务工具,可以执行行或非行操作


Tags: 文件工具path代码数据库new顺序os
2条回答

严格地说,这是不可能的,除非您像TxFhttps://en.wikipedia.org/wiki/Transactional_NTFS)一样使用事务文件系统,因为没有任何东西可以阻止您的机器在两个命令之间关闭电源

我在这里可以看到两种方式:

1)切换到数据库

2)在解除链接之前检查所有条件。是什么阻止您进行符号链接

你可以试试这个:

import os

linkname = '/tmp/test.lnk'
orig_target = os.path.realpath(linkname)
os.unlink(linkname)
try:
    os.symlink(new_target, linkname)
except:
    os.symlink(orig_target, linkname)

也许可以检查可能发生的异常,只捕获相关的异常

相关问题 更多 >