以格式化版本打印程序的输出

时间:2017-07-18 08:23:02

标签: python linux objdump

我想在我的程序中运行objdump -d [sample]命令,然后我想在格式化版本中显示它的输出。例如,我想在其输出的每一行中显示其输出一个选项卡。我怎么能这样做?

 cmd1 = "objdump -d "
 name = "sample"
 output = os.system(str(cmd1) + str(name))
 print(output)

1 个答案:

答案 0 :(得分:1)

您可以使用subprocess.check_output

In [864]: output = subprocess.check_output(['objdump -d a.out'], shell=True)

返回输出的字节字符串。然后,您可以使用str.decode来显示您的数据。如果要缩进选项卡,可以在换行符上拆分,然后逐行打印,如下所示:

In [870]: for line in output.decode().split('\n'):
     ...:     print('\t', line)
     ...:     

     a.out: file format Mach-O 64-bit x86-64

     Disassembly of section __TEXT,__text:
     __text:
     100000fa0: 55  pushq   %rbp
     100000fa1: 48 89 e5    movq    %rsp, %rbp
     100000fa4: 31 c0   xorl    %eax, %eax
     100000fa6: c7 45 fc 00 00 00 00    movl    $0, -4(%rbp)
     100000fad: 5d  popq    %rbp
     100000fae: c3  retq

     _main:
     100000fa0: 55  pushq   %rbp
     100000fa1: 48 89 e5    movq    %rsp, %rbp
     100000fa4: 31 c0   xorl    %eax, %eax
     100000fa6: c7 45 fc 00 00 00 00    movl    $0, -4(%rbp)
     100000fad: 5d  popq    %rbp
     100000fae: c3  retq