【发布时间】:2017-01-22 04:21:14
【问题描述】:
假设在我的文件系统上存在以下目录:
/foo/bar/
在我的 python 代码中,我有以下路径:
/foo/bar/baz/quix/
我怎么知道只有/foo/bar/ 部分路径存在?
我可以递归地走路径,一步一步检查,但是有没有更简单的方法?
【问题讨论】:
-
你为什么想知道存在什么路径?如果是为了记录目的,说完整路径不存在就足够了。
-
@thiruvenkadam 我想跟踪我的代码创建的目录,以便之后可以恢复状态。因此,如果
foo/存在,但我创建了路径foo/bar/baz,那么我希望能够恢复到只有foo/存在。 -
那么你应该在创建目录的时候保留恢复点,就像创建这个目录一样,而不是找出之前存在的目录结构。那会更干净。就像您在 /foo 下创建 bar 目录一样,最好跟踪 /foo/bar 的创建,而不是跟踪 /foo 已经存在。我在您的用例中遗漏了什么吗?
-
好吧,不幸的是
os.makedirs没有告诉我它创建了哪些目录,所以我必须自己弄清楚。 -
os.makedirs 只能在受控环境中使用。就像您需要在绝对不存在的现有 virtualenv 下生成目录结构一样。在所有其他情况下,最佳做法是使用 makedir。尽管 makedirs 减少了编写的代码并且看起来很吸引人,但如果您正在接触不同的路径或不确定现有路径,最好的方法是使用 makedir 一次创建一个目录以进行恢复。