os.mknod()在MacOS上失败了?

pyt*_*152 6 python

os.mknod()Mac上的特权电话吗?它总是失败,不允许操作?

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
Run Code Online (Sandbox Code Playgroud)

Hel*_*rld 7

从OSX手册页https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man2/mknod.2.html

Mknod() requires super-user privileges.
Run Code Online (Sandbox Code Playgroud)

除无效参数外有效

sudo python -c "import os; os.mknod('/tmp/test123')"
Run Code Online (Sandbox Code Playgroud)


Cor*_*ein 5

不幸的是,mknod需要升级的特权。如果您不需要mknod,则只需使用创建文件open,而无需升级:

open('/tmp/test123', 'w').close()
Run Code Online (Sandbox Code Playgroud)

如果除了创建文件之外还要写入文件:

with open('/tmp/test123', 'w') as file:
    file.write('hello world')
Run Code Online (Sandbox Code Playgroud)

with如上使用将自动为您关闭文件。