pythonで外部のコマンドを実行し、その出力に処理を加える方法


`cat xxx`のようなコマンドをpythonから実行して、結果を受け取りたいです。  
受け取る実行結果は、  

[code]

    1  aaa  3a
    2  bbb  32
    3  ccc  50
    4  ddd  41
    5  eee  15
    
[/code]

のような文字列を想定しています。  
この文字列の各行をスペースでフィールドに区切り、各フィールドに処理を加え出力したいです。

  * 1〜2フィールド目はそのまま出力
  * 3フィールド目（30など）は１６進表現の文字列と考えて数値に変換し、以下のビット演算を行なう 
    * ５ビット目(０か１)を3フィールド目に出力
    * ４ビット目(０か１)を4フィールド目に出力
    * ３～１ビット目を、１０進表現(０～７)で5フィールド目に出力

出力例:

[code]

    1  aaa  1  1  2
    2  bbb  1  0  2
    3  ccc  1  0  0
    4  ddd  0  0  1
    5  eee  1  0  5
    
[/code]

このように加工することはできますか？




こんな感じですか．このコードでは`print`してます．文字列として保持してのちのタスクに使うかもしれませんが．

[code]

    import subprocess
    
    contents = subprocess.check_output('cat xxx',shell=True)
    for l in contents.splitlines():
        e = l.split()
        number = int(e[2],base=16)
        print(e[0],e[1],number>>4&1,number>>3&1,number&0b111)
    
[/code]

