如何使用python从命令提示符输出中打印特定行

时间:2017-08-28 02:40:25

标签: python-2.7

import os
gsize = os.system('dir dir C:\Users\GNK\Documents')

这将给出如下所示。但我想只打印最后2行。

C:\Users\GNK>dir C:\Users\GNK\Documents
06/26/2017  04:24 PM            13,826 1.xlsx
07/03/2017  10:52 PM            15,068 2.xlsx
08/11/2017  05:59 PM         3,227,457 3.zip
08/14/2017  02:56 PM               527 4.sql
06/09/2017  02:36 PM             3,976 5.sql
06/09/2017  02:54 PM           601,580 6.zip
06/12/2017  07:59 PM       116,641,792 7.mp3
08/12/2017  09:25 AM        15,747,576 8.exe
06/16/2017  12:23 AM           286,829 9
08/19/2017  02:38 PM         1,211,008 10
07/21/2017  08:08 AM            98,776 11
08/03/2017  10:38 PM        10,427,892 11
06/04/2017  05:20 PM           196,126 12
05/21/2017  09:11 AM           196,126 13
06/04/2017  05:22 PM           232,964 14
05/21/2017  09:11 AM           232,964 15
07/07/2017  12:03 PM            13,077 16
07/07/2017  12:02 PM            13,076 v17t
07/06/2017  07:57 AM        49,400,720 18
05/23/2017  12:56 AM           551,522 19
             160 File(s)    921,950,736 bytes
               3 Dir(s)  21,563,650,048 bytes free

我想只打印最后2行。我怎样才能做到这一点。请帮忙

1 个答案:

答案 0 :(得分:1)

您可以阅读os.system文档:

  

子进程模块为产卵提供了更强大的功能   新流程并检索其结果;使用该模块是   比使用这个功能更好。请参阅更换旧功能   使用子流程文档中的子流程模块部分   一些有用的食谱。

所以我认为你做的更好:

import subprocess
print(subprocess.check_output(['dir', 'C:\Users\GNK\Documents']).splitlines()[-2:])

.splitlines()[-2:]部分仅保留最后两行。如果需要,可以将它们连接成两行字符串:

str.join('\n', subprocess.check_output(['dir', 'C:\Users\GNK\Documents']).splitlines()[-2:])