如何在for循环中仅显示最后N行?

时间:2018-04-13 16:41:59

标签: python loops for-loop

我正在创建一个脚本来连接存储阵列并运行命令。

sys.source("step1.R", envir=e1)

输出是这样的:

stdin, stdout, stderr = ssh.exec_command("statvv -rw -iter 1")
for status in stdout:
    result = (status)
    print(result)

但我想只打印V90Z_10_3PAR05 t 0 0 0 0 0 0 0.00 0.00 0.0 0.0 0 V91A_10_3PAR05 r 0 0 0 0 0 0 0.00 0.00 0.0 0.0 - V91A_10_3PAR05 w 0 0 0 0 0 0 0.00 0.00 0.0 0.0 - V91A_10_3PAR05 t 0 0 0 0 0 0 0.00 0.00 0.0 0.0 0 -- 309 r 1577 1577 112637 112637 1.83 1.83 71.4 71.4 - 309 w 20158 20158 1125017 1125017 1.49 1.49 55.8 55.8 - 309 t 21736 21736 1237653 1237653 1.52 1.52 56.9 56.9 7 之后的最后一行而不将其保存到文件中。

2 个答案:

答案 0 :(得分:0)

我不熟悉statvv,但是如果你知道你想要的行总是在读取行stdin, stdout, stderr = ssh.exec_command("statvv -rw -iter 1") final_status = False for status in stdout: if final_status: print(status) elif status == '--': final_status = True 之后,你可以保留一个跟踪你是否已经看过它的布尔值:

-device usb-mouse -device usb-kbd

答案 1 :(得分:0)

如果您知道要跳过的行数,那么您可以保留一个计数器并执行以下操作:

counter = 0 
MAX_COUNT = number_of_lines_you_want_to_skip
for status in stdout:
    if counter > MAX_COUNT:
        result = (status)
        print(result)
    else:
        counter ++

如果您不知道这些行,您可以继续阅读,直到看到"--"(这是您问题中的代码段),然后仅打印{{1}之后的那些行。 }

"--"

希望这有帮助!