Maison > Questions et réponses > le corps du texte
语言: 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
PHPz2017-04-17 17:57:52
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