Ist os.mknod()
ein privilegierter Anruf auf dem Mac? Es scheitert immer mit Betrieb nicht erlaubt?
In [1]: import os
In [2]: os.mknod("/tmp/test123")
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-2-1b8032a076af> in <module>()
----> 1 os.mknod("/tmp/test123")
OSError: [Errno 1] Operation not permitted
3 Antworten
Auf der OSX-Manpage https: // Entwickler .apple.com / library / mac / documentation / Darwin / Reference / ManPages / man2 / mknod.2.html
Mknod() requires super-user privileges.
Funktioniert mit Ausnahme des ungültigen Arguments
sudo python -c "import os; os.mknod('/tmp/test123')"
Leider erfordert mknod
eskalierte Berechtigungen. Wenn Sie mknod
nicht speziell benötigen, erstellen Sie die Datei einfach mit open
, was keine Eskalation erfordert:
open('/tmp/test123', 'w').close()
Wenn Sie zusätzlich zum Erstellen in die Datei schreiben möchten:
with open('/tmp/test123', 'w') as file:
file.write('hello world')
Wenn Sie with
wie oben verwenden, wird die Datei automatisch für Sie geschlossen.
Die Verwendung von os.makedirs
löst das Problem.
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.