Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有数据库的情况下使用python事务?_Python - Fatal编程技术网

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

如何在没有数据库的情况下使用python事务?,python,Python,我的代码中有两行,第一行是os.unlink,第二行是os.symlink。比如: os.unlink(path) os.symlink(new_path) 顺序不应更改,问题是,有时它会取消文件链接(换句话说,它会删除其快捷方式),但第二行无法创建符号链接(对某些寻址问题执行) 我的问题是:有没有像我们在数据库中使用的那样的全事务或非事务工具,既可以执行行操作,也可以执行非行操作?您可以尝试以下方法: import os linkname = '/tmp/test.lnk' orig_ta

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

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

我的问题是:有没有像我们在数据库中使用的那样的全事务或非事务工具,既可以执行行操作,也可以执行非行操作?

您可以尝试以下方法:

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)

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

严格地说,除非您使用像TxF()这样的事务文件系统,否则这是不可能的,因为没有任何东西可以阻止您的机器在两个命令之间断电

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

1) 切换到数据库


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

问题在于,由于某些寻址问题,它不会创建异常部分。除非地址存在,否则它不会创建符号链接。因此,首先检查新目标是否存在就足够了?