强制目录在Python中创建

时间:2014-07-29 21:27:45

标签: python

我在超级计算群集上运行带MPI的Python。我认为这是一种奇怪的不确定行为,我认为这是I / O复杂性的结果,而这些复杂性并不存在于我曾经使用过的单一机器上。

我的代码所做的一件事就是经常使用os.makedirs创建目录。我也知道我通常不应该向文件系统写入少量数据 - 这最终会导致数据卡在某个缓冲区而不能长时间写入。我怀疑这可能发生在我的目录创建调用上,然后稍后代码尝试在目录存在之前写入目录中的文件。两个问题:

  • 创建一个新目录与编写少量数据有效吗?
  • 强制写入数据时,我使用flushos.fsync。这些需要一个文件对象。是否有相应的目的,以确保目录已创建?

1 个答案:

答案 0 :(得分:1)

创建新目录实际上与编写少量数据相同。它添加了一个inode。

mkdir(或os.mkdirs)失败的唯一方法是目录是否存在 - 否则将始终创建目录。就缓冲数据而言 - 这种情况不太可能发生 - 即使是日记文件系统也会定期同步。

如果您有非确定性行为,只需将您的目录创建/写入try / except / finally中的该目录,这需要付出一些努力吗?但实际上 - 对这些代码的需求暗示了一些更加险恶的东西,并且可能是一个更大的问题。