【问题标题】:Matching strings of a List of lists and export them to an Excel匹配列表列表的字符串并将它们导出到 Excel
【发布时间】:2019-05-28 21:27:46
【问题描述】:

我有一个列表列表,我想通过字符串“名称”和“地址”匹配每个列表的项目,我想将匹配的项目导出到 Excel

['Server:  Corp', 'Address:  10.17.2.5\r', '\r', 'Name:    b.resolvers.level3.net\r', 'Address:  4.2.2.2\r', '\r', ''],
['Server:  Corp', 'Address:  10.17.2.5\r', '\r', 'Name:    google-public-dns-a.google.com\r', 'Address:  8.8.8.8\r', '\r', ''],
['Server:  Corp', 'Address:  10.17.2.5\r', '\r', 'Name:    dns.quad9.net\r', 'Address:  9.9.9.9\r', '\r', '']


import re
m = re.search(r'\bName\b'| \bAddress\b', line)
for line in output:
        if m:
            print(m.group())

我想写什么:

b.resolvers.level3.net , 4.2.2.2
google-public-dns-a.google.com , 8.8.8.8
dns.quad9.net , 9.9.9.9

【问题讨论】:

  • 你的问题不清楚。在列表中,您有两个 Address: 您想同时匹配它们吗?
  • 也许通过解析数据并将其放入 {'Server': 'Corp', 'Address':'10.17.2.5', ...} 之类的东西中,将数组结构转换为 dict 结构更有意义?这样,获取数据会容易得多?!
  • @RAN_0915 : 只想匹配第二个地址

标签: regex python-2.7


【解决方案1】:

试试,

lists=[['Server:  Corp', 'Address:  10.17.2.5\r', '\r', 'Name:    b.resolvers.level3.net\r', 'Address:  4.2.2.2\r', '\r', ''],['Server:  Corp', 'Address:  10.17.2.5\r', '\r', 'Name:    google-public-dns-a.google.com\r', 'Address:  8.8.8.8\r', '\r', ''],
['Server:  Corp', 'Address:  10.17.2.5\r', '\r', 'Name:    dns.quad9.net\r', 'Address:  9.9.9.9\r', '\r', '']]

list2=[]
for singleList in lists:
    list1=[]
    flag=0    

    for item in singleList:
        matcher=re.search('Name:(.*)', item)
        if matcher:
            list1.append(matcher.group(1).strip())
            print(matcher.group(1).strip())
            flag=1

        if flag==1:
            matcher=re.search('Address:(.*)', item)
            if matcher:
                list1.append(matcher.group(1).strip())
                print(matcher.group(1).strip())

    list2.append(list1)

import xlwt
from tempfile import TemporaryFile
book = xlwt.Workbook()
sheet1 = book.add_sheet('sheet1')


for j,a in enumerate(list2):
    for i,e in enumerate(a):
        sheet1.write(j,i,e)

name = "random.xls"
book.save(name)
book.save(TemporaryFile())

lists 将是列表列表。 list2 包含

[['b.resolvers.level3.net', '4.2.2.2'], ['google-public-dns-a.google.com', '8.8.8.8'], ['dns.quad9.net', '9.9.9.9']] 可以导出为 excel 或 csv

【讨论】:

  • 可以按照我在问题中提到的确切顺序。实际上,我会将其导出到 excel 中,以便“名称”与“IP”相对?
  • 什么顺序?您希望名称和 ip 在列表中或仅作为字符串打印
  • 是的..name,ip..可以导出到excel吗? ip 反对名字?
  • 我检查过了,但不知道如何将它与您的脚本集成 .. 它没有在 excel 的一列中给出“ip”,在另一列中给出“name”....
猜你喜欢
  • 1970-01-01
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-26
  • 2021-03-11
  • 2021-02-25
相关资源
最近更新 更多