os.mkdir()和os.makedirs()之间的区别

时间:2016-06-21 15:14:32

标签: python-2.7 pycharm

我使用python 2.7在Pycharm中创建一个蜘蛛来从网站获取数据。 在第一个蜘蛛中,我在项目文件夹中创建了一个蜘蛛,并使用os.mkdir(' home / img /')创建一个文件夹来保存数据。没有错误。 在第二个蜘蛛中,我使用RedisQueue创建蜘蛛,它位于项目文件夹中,并将Spider.py放入/usr/lib/python2.7。当我使用os.mkdir(' home / img /')时,它报告错误'没有这样的文件或目录'并将其更改为os.makedirs(),它有效。 我可以知道为什么第一个没有遇到错误吗?提前致谢

2 个答案:

答案 0 :(得分:9)

os.makedirs():递归目录创建功能。与 os.mkdir()类似,但需要包含叶子目录的所有中间级目录。

这意味着您不应该尝试使用os.mkdir()创建嵌套目录,而是使用os.makedirs()。

在你的情况下,我猜你想要在你的主目录下创建一个目录,在这种情况下你需要像os.mkdir(" / home / img")这样的东西,这会失败如果您没有足够的权限。

您可以尝试执行以下操作:os.chdir(' / home')以及之后的os.mkdir(' img'),以便您逐步创建home / img!祝好运!

答案 1 :(得分:-2)

os.mkdirs(目录名称)和os.mkdirs(目录名称)之间的区别

mkdir()将仅创建经过整理的目录。如果某些父目录不存在,则mkdir()将返回false。 mkdirs()将创建所有缺少父目录的最后一个目录。因此mkdirs()更方便。