在Python中将文件作为事务移动?

时间:2017-05-10 01:22:24

标签: python unix

我有一些文件要从一个文件夹移动到另一个文件夹。如果出于任何原因,其中一个文件的移动失败,我希望它们都不会移动。基本上,要么移动所有文件,要么不移动任何文件。我可以自己编写近似于此的逻辑,但在此之前,是否有本机Python或Unix方法来执行此操作?认为情况经常出现,解决方案可能已经存在,而且我还没有听说过。

1 个答案:

答案 0 :(得分:0)

Python和Unix都没有针对多个文件的操作的事务概念。

对于在磁盘分区中移动, mv 命令将仅使用相同的inode更新目录条目,因此文件实际上不会移动(移动期间没有失败的风险)。 / p>

对于跨磁盘的移动,您可以是目标驱动器上的临时目录,复制所有文件,然后成功执行 mv ,如上所述,最后清除源代码。这将提供一些保护措施。