2016-06-21 7 views
4

Ich benutze Python 2.7, um eine Spinne in Pycharm zu erstellen, um Daten von der Website zu erhalten. In der ersten Spinne erstelle ich einen Spider im Projektordner und benutze os.mkdir ('home/img /'), um einen Ordner zum Speichern von Daten zu erstellen. Es gibt keinen Fehler. In der zweiten Spinne erstelle ich die Spinne mit RedisQueue, die sich im Projektordner befindet und spider.py in /usr/lib/python2.7. Wenn ich os.mkdir ('home/img /') benutze, meldet es den Fehler 'keine solche Datei oder dir' und ich ändere es in os.makedirs() was funktioniert. Darf ich wissen, warum der erste Fehler nicht erfüllt? Vielen Dank im Vorausder Unterschied zwischen os.mkdir() und os.makedirs()

+0

mkdirs() erstellt alle erforderlichen "mittleren" Verzeichnisse im angegebenen Pfad, mkdir() wird nicht. Bist du sicher, dass dein Code mit einem richtigen "aktuellen" Verzeichnis läuft? –

Antwort

6

os.makedirs(): Rekursive Verzeichniserstellungsfunktion. Wie os.mkdir(), aber alle Verzeichnisse der mittleren Ebene benötigt, um das Blatt Verzeichnis enthalten.

Dies bedeutet, dass Sie nicht versuchen sollten, verschachtelte Verzeichnisse mit os.mkdir() zu erstellen, sondern stattdessen os.makedirs() verwenden.

In Ihrem Fall, ich vermute, dass Sie ein Verzeichnis unter Ihrem Home-Verzeichnis erstellen möchten, in diesem Fall würden Sie etwas wie os.mkdir ("/ home/img") benötigen, die fehlschlagen wird, wenn Sie dies nicht tun Habe genug Berechtigungen.

Sie könnten versuchen, etwas wie: os.chdir ('/ home') und danach os.mkdir ('img'), so erstellen Sie home/img in Schritten! Viel Glück!

+1

Link zur Dokumentation ** os.makedirs() ** (Python 2): [https://docs.python.org/2/library/os.html#os.makedirs](https://docs.python .org/2/Bibliothek/os.html # os.makedirs) – Qululu

Verwandte Themen