我需要从python中的文本文件中获取特定数据

2024-05-15 13:11:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我从一个字符串输出中得到了一些信息

subprocess.Popen(['/bin/grep', '-E', 'CLIENTS', p ], stdout=subprocess.PIPE, encoding='utf-8')

当我打印的时候,我得到了如下的结果

CLIENTS='ip-10-161-110-51:ip-10-161-111-52:ip-10-161-112-53'
ISCSI_CLIENTS='ip-10-161-110-51,ip-10-161-111-52-227,ip-10-161-112-53'
NFS_CLIENTS='ip-10-161-110-51,ip-10-161-111-52,ip-10-161-112-53'
CLIENTS='ip-10-161-110-43:ip-10-161-111-42:ip-10-161-112-41'
ISCSI_CLIENTS='ip-10-151-108-51,ip-11-161-111-42,ip-10-161-112-41'
NFS_CLIENTS='ip-10-121-110-32,ip-10-161-111-34,ip-10-161-112-35'

我如何合并它以获得如下输出

CLIENTS = ip-10-161-110-51:ip-10-161-111-52:ip-10-161-112-53:ip-10-161-110-43:ip-10-161-111-42:ip-10-161-112-41
NFS_CLIENTS = ip-10-161-110-51,ip-10-161-111-52,ip-10-161-112-53,ip-10-151-108-51,ip-11-161-111-42,ip-10-161-112-41
ISCSI_CLIENTS = ip-10-161-110-51,ip-10-161-111-52-227,ip-10-161-112-53,ip-10-151-108-51,ip-11-161-111-42,ip-10-161-112-41

Tags: 字符串ip信息binstdoutgreputfencoding
1条回答
网友
1楼 · 发布于 2024-05-15 13:11:36

尝试在python中对字符串使用find来获取字符串中所需文本的开始和停止位置。然后可以像这样从数组中调用该字符串位

    input_text = ""
    text_start = input_text.find("NODES")
    text_stop = input_text[text_start].find("# The") + text_start
    wanted_text = input_text[text_start:text_stop]
    print(wanted_text)

您可以扩展此想法,通过名称(如“NODES”或“FILERA=ip”)查找确切的起始位置,然后搜索结束字符(如“,”after),以使每个项目彼此分开。我已经让上面的代码抓取了给定的想要的文本批,您只需要将文件输出输入到代码中输入文本所在的位置,就可以动态地设置它

相关问题 更多 >