#!/usr/bin/python import subprocess import plistlib cmd = ['/usr/sbin/system_profiler', '-xml', 'SPApplicationsDataType'] proc = subprocess.Popen(cmd, shell=False, bufsize=-1, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) output, err = proc.communicate() plist = plistlib.readPlistFromString(output) items = plist[0]['_items'] for item in sorted(items, key=lambda x: x.get('path')): if 'no' in item.get('has64BitIntelCode'): print [item.get('path'), item.get('_name'), item.get('version')]