2015-08-20 2 views
4

Есть ли os.mknod() привилегированный звонок на Mac? Он всегда терпит неудачу, когда операция не разрешена?os.mknod() не работает на MacOS?

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 

ответ

0

Как @HelloWorld показывает, MacOS требует привилегии суперпользователя для запуска mknod. Если вы не чувствуете, как эскалации привилегий просто создать файл, вы можете сделать это таким образом, вместо:

open('/tmp/test123', 'w').close() 

Если вы хотите написать что-то в файл сразу, я рекомендую делать это таким образом:

with open('/tmp/test123', 'w') as file: 
    file.write('hello world') 
# Once the above block is exited the file will be automatically closed for you 
Смежные вопросы