stat st_rdev in python

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


In article <9jsop4$si0$1 at netra.msu.montana.edu>, 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.

Exactly.

>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 = r.search(o)
    if not m:
        raise "error parsing stat output"
    major = int(m.group(1))
    minor = int(m.group(2))

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.

>Suggestions?

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
                               visi.com            installed within SIX AND A
                                                   HALF HOURS!!!



More information about the Python-list mailing list