Python module 'os' has no attribute 'mknod'

Manthan Sharma picture Manthan Sharma · Sep 21, 2015 · Viewed 11.2k times · Source

I want to create a new file in Python for that I am using mknod command, but getting error as:

os.mknod();
AttributeError: module 'os' has no attribute 'mknod'

I am using windows and attributes other than 'mknod' are working.

Answer

Dimitris Fasarakis Hilliard picture Dimitris Fasarakis Hilliard · Jul 19, 2016

os offers functionality that is closely related to the OS you're using. If most other attributes can be accessed from os (meaning you haven't got a os.py file in the current dir masking the standard module) an AttributeError will 99% signal an unsupported function on your Operating System.

This is what the case is with os.mknod on Windows. Creating named pipes in Windows has, as far as I can understand, very different semantics.

Either way, if you are trying to use mknod to create named pipes you'd probably be better using mkfifo() (again, only Unix supported) . If you're using it to create ordinary files, don't, use open() which is portable.