Getting Windows computer system info

Bengt Richter bokr at
Wed Nov 10 09:40:26 CET 2004

On 9 Nov 2004 09:47:31 -0800, gao_bolin at (Bolin) wrote:

>I was wondering how to get some system info from a PC running Windows
>in python. I am especially interested in knowing how much RAM the
>computer has, how much diskspace is still left, and what jobs are
>already running and how much memory they take. If this is off-topic, I
>would appreciate if you redirect me.
I use this to get a quick summary of disk free space from the console
command line:

----< >----------------------
import os
def df(drives='C', showna=1):
    for drive in drives:
        drive = drive.upper()
        d = os.popen('dir/w '+drive+':\\').readlines()
        if not d:
            if showna: print '%s: (n/a)' % drive
        print '%s: (%-12s %12s bytes free ' %(
            d[0].strip().split(' is ', 1)[-1]+')',
            d[-1].strip().split(' bytes ')[0]

if __name__ == '__main__':
    import sys
    if len(sys.argv)<2: df()
    else: df(sys.argv[1])

actually, i start it with df.cmd, which has:

@python c:\util\ CDEVW

since those are my useful drive letters.

As for dynamic stuff, if it's just for you, see if you have pstat.exe on your path
(likely if you have MS dev tools). If so, try it from the command line
to see what it gives you. Then you can write a quick python function
to run it via popen and extract what you want from the read result, e.g.,

 >>> import os
 >>> for line in os.popen('pstat.exe'):
 ...     if 'mem' in line.lower(): print line.rstrip()
 Pstat version 0.3:  memory: 327080 kb  uptime:  0 21:40:12.957
  Memory: 327080K Avail: 274140K  TotalWs:  40132K InRam Kernel: 3264K P:12572K
    c  18        22 8011f9ba  0:00:00.000  0:00:00.160 Wait:VirtualMemory
   2a  17         1 801223a4  0:00:00.000  0:00:00.000 Wait:VirtualMemory

Or eliminate the first-guess garbage

 >>> import os
 >>> for line in os.popen('pstat.exe'):
 ...     if 'emory:' in line: print line.strip()
 Pstat version 0.3:  memory: 327080 kb  uptime:  0 21:43:48.997
 Memory: 327080K Avail: 274668K  TotalWs:  39520K InRam Kernel: 3260K P:12484K


Bengt Richter

More information about the Python-list mailing list