stat st_rdev in python

Grant Edwards grante at
Fri Jul 27 23:48:05 EDT 2001

In article <9jsop4$si0$1 at>, Louis Glassy wrote:

>Is there a way to find out unix device major/minor numbers
>_in_ Python 2.1, without using an external C module or program?

I asked the exact same question about two weeks ago.

>The tuple returned by os.stat() does not return the stat 
>st_rdev field, which contains the information I need.


>I see two options:  either write my own binding to stat(2)
>or do something like a popen on /bin/ls.

I ended up with something like this:

    s,o = commands.getstatusoutput("/usr/bin/stat "+devName)
    if s:
        raise "error running /usr/bin/stat"
    r = re.compile("Device type: ([0-9]{1,3}),([0-9]{1,3})")
    m =
    if not m:
        raise "error parsing stat output"
    major = int(
    minor = int(

Nasty, but it works (so far).
>These both work, though neither is attractive.  It'd be nice if there were
>an unaldulterated posix module that I could call and get what everything
>that stat(2) would return.

That would be awfully nice.  A wrapper for the mknod() library call would
also be nice.


If I had more time, I'd fix up the Posix library and submit a patch...

Grant Edwards                   grante             Yow!  .. I want FORTY-TWO
                                  at               TRYNEL FLOATATION SYSTEMS
                                 installed within SIX AND A
                                                   HALF HOURS!!!

More information about the Python-list mailing list