python - os.mkdir() 和 os.makedirs() 的区别
PHPz
PHPz 2017-04-17 17:55:52
0
1
608
  • 语言: Python2.7

  • IDE: Pycharm

  • os: Linux

用Python做的 爬虫:

  • 第一个建立在 project folder 下用 os.mkdir('home/img/') 创建文件夹存储数据,文件夹正常建立

  • 第二个加入RedisQueue,爬虫程序放在 /usr/lib/python2.7, rq 主体放在 project folder下面, 在爬虫程序里面用 os.mkdir('home/img/') 报错,用 os.makedirs('home/img/') 正常建立。

为什么第一个没有报错?

thx in advance

PHPz
PHPz

学习是最好的投资!

répondre à tous(1)
PHPzhong

La différence entre

os.mkdir et os.makedirs est que os.makedirs créera le répertoire de manière récursive, ce qui signifie que le répertoire relayé sera également créé ensemble, comme mkdir -p sous Linux.

>>> import os
>>> os.mkdir('foo/bar')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: 'foo/bar'
>>> os.makedirs('foo/bar')

Lors de l'utilisation de os.mkdir, si le paramètre path que vous donnez est un chemin multicouche, et si un répertoire relais n'existe pas (comme foo dans l'exemple ci-dessus), Python signalera une erreur.

Mais si vous utilisez os.makedirs, Python sera créé avec les répertoires intermédiaires. Mais une chose à noter est que si le répertoire à la fin du chemin existe déjà, os.makedirs provoquera également une exception.


Je pense que votre problème est là, vous pouvez vérifier si le répertoire home existe au début.

Il convient de noter que l'identification du chemin dépend ici de l'endroit où vous démarrez l'interpréteur Python, c'est-à-dire que vous devez vous assurer qu'il doit y avoir python sous le répertoire où vous exécutez home pour éviter erreurs. os.mkdir

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal