FAQ
Hello all,

In a script I would like to extract all device infos from block or
character device. The "stat" function gives me most of the infos
(mode, timestamp, user and group id, ...), however I did not find how
to get the devices major and minor numbers. Of course I could do it by
calling an external program, but is it possible to stay within python?

In the example below, I would like to get the major (8) and minor (0,
1, 2) numbers of /dev/sda{,1,2}. How can I get them?

user at host:~$ ls -l /dev/sda /dev/sda1 /dev/sda2
brw-rw---- 1 root disk 8, 0 Nov 30 19:10 /dev/sda
brw-rw---- 1 root disk 8, 1 Nov 30 19:10 /dev/sda1
brw-rw---- 1 root disk 8, 2 Nov 30 19:10 /dev/sda2
user at host:~$ python3.1 -c 'import os
for el in ["","1","2"]: print(os.stat("/dev/sda"+el));'
posix.stat_result(st_mode%008, st_ino76, st_dev=5, st_nlink=1,
st_uid=0, st_gid=6, st_size=0, st_atime91140641,
st_mtime91140640, st_ctime91140640)
posix.stat_result(st_mode%008, st_ino80, st_dev=5, st_nlink=1,
st_uid=0, st_gid=6, st_size=0, st_atime91140644,
st_mtime91140641, st_ctime91140641)
posix.stat_result(st_mode%008, st_ino81, st_dev=5, st_nlink=1,
st_uid=0, st_gid=6, st_size=0, st_atime91140644,
st_mtime91140641, st_ctime91140641)

Thanks


Tom

Search Discussions

  • Dan M at Nov 30, 2010 at 8:18 pm

    On Tue, 30 Nov 2010 21:09:14 +0100, Thomas Portmann wrote:

    Hello all,

    In a script I would like to extract all device infos from block or
    character device. The "stat" function gives me most of the infos (mode,
    timestamp, user and group id, ...), however I did not find how to get
    the devices major and minor numbers. Of course I could do it by calling
    an external program, but is it possible to stay within python?

    In the example below, I would like to get the major (8) and minor (0, 1,
    2) numbers of /dev/sda{,1,2}. How can I get them?
    I think the os.major() and os.minor() calls ought to do what you want.
    import os
    s = os.stat('/dev/sda1')
    os.major(s.st_rdev)
    8
    os.minor(s.st_rdev)
    1
    >>>

    dan at dan:~$ ls -l /dev/sda1
    brw-rw---- 1 root disk 8, 1 2010-11-18 05:41 /dev/sda1
  • Thomas Portmann at Nov 30, 2010 at 8:35 pm

    On Tue, Nov 30, 2010 at 9:18 PM, Dan M wrote:
    On Tue, 30 Nov 2010 21:09:14 +0100, Thomas Portmann wrote:

    In the example below, I would like to get the major (8) and minor (0, 1,
    2) numbers of /dev/sda{,1,2}. How can I get them?
    I think the os.major() and os.minor() calls ought to do what you want.
    import os
    s = os.stat('/dev/sda1')
    os.major(s.st_rdev)
    8
    os.minor(s.st_rdev)
    1
    Thank you very much Dan, this is exactly what I was looking for.


    Tom
  • Dan M at Nov 30, 2010 at 8:41 pm

    On Tue, 30 Nov 2010 21:35:43 +0100, Thomas Portmann wrote:

    Thank you very much Dan, this is exactly what I was looking for.


    Tom
    You're very welcome.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppython-list @
categoriespython
postedNov 30, '10 at 8:09p
activeNov 30, '10 at 8:41p
posts4
users2
websitepython.org

2 users in discussion

Dan M: 2 posts Thomas Portmann: 2 posts

People

Translate

site design / logo © 2022 Grokbase