Linux上是python的shutil.move()原子吗?

时间:2010-09-15 09:27:25

标签: python file unix atomic

我想知道python的shutil.move是否在linux上是原子的?如果源文件和目标文件位于两个不同的分区上,或者它们是否位于同一分区上时,行为是否不同?

如果源文件和目标文件在同一个分区上,我更关心shutil.move是否是原子的!

1 个答案:

答案 0 :(得分:17)

如果文件位于不同的filsystems上,则不是原子的。在这种情况下,python打开源文件和目标文件,从源读取循环并写入desination,最后取消链接源文件。

如果源文件系统和目标文件在同一个文件系统上,python使用rename()C调用,这是原子的。