首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python中反向迭代子进程的输出?

如何在python中反向迭代子进程的输出?
EN

Stack Overflow用户
提问于 2020-09-10 12:23:53
回答 3查看 41关注 0票数 0

我有一个python代码,它按照下面的方式迭代日志,现在它打印。

日志1日志2日志3

但我想要的是

日志3日志2日志1

我该怎么做?

代码语言:javascript
运行
复制
import sys
import subprocess
import select
from re import search

substring = "Modem works in"

args = ['journalctl', '--lines', '100', '|', 'tail', '-n','100']
#, '_SYSTEMD_UNIT=myservice.service']

for line in subprocess.check_output(args, shell=True, universal_newlines=True).split('\n'):
    print(line)
    if search(substring, line):
        print(line)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-09-10 12:36:33

很多不同的方法。这里有两个:

代码语言:javascript
运行
复制
for line in reversed(subprocess.check_output(args, shell=True, universal_newlines=True).split('\n')):
...

代码语言:javascript
运行
复制
for line in subprocess.check_output(args, shell=True, universal_newlines=True).split('\n')[::-1]:
...
票数 1
EN

Stack Overflow用户

发布于 2020-09-10 12:42:37

另一种方法是

代码语言:javascript
运行
复制
log_list=[]
for line in subprocess.check_output(args, shell=True, universal_newlines=True).split('\n'):
    log_list.append(line)
    print(line)
    if search(substring, line):
        log_list.append(line)
        print(line)

print(" ".join(log_list.reverse()))
票数 1
EN

Stack Overflow用户

发布于 2020-09-10 12:52:49

your_list = 1,2,3,4

  1. 使用range方法:

print( [i for i in range(10,1,-1)] )

  1. reversed方法:

print([i for i in reversed( your_list )])

  1. 扩展切片列表

print( your_list[::-1] )

所有这些文件都将打印:

代码语言:javascript
运行
复制
[5, 4, 3, 2, 1]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63829623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档