python pandas 处理 excel

客户要求整理出所有服务器上所有用户,在ansible服务器上执行

ansible all -m shell -a "cat /etc/passwd|awk '{print $1}'"

输出结果如下,省略了一些。一个ip下面跟着用户: 10.200.187.51 root bin daemon adm 10.200.151.94 root bin daemon adm

需要输出如下,即分为两列,ip列合并单元格:

以下需先安装pandas pip install pandas

import pandas as pd
import re
text = """
10.200.187.51
root
bin
daemon
adm
10.200.151.94
root
bin
daemon
adm
"""

data = text.strip().split("\n")

rs = []
ip = ""
for d in data:
    if re.match('\d+\.\d+\.\d+\.\d', d):
        ip = d
    else:
        rs.append((ip, d))
df = pd.DataFrame(rs, columns=["ip", "user"])
df = df.groupby(df["ip"]).apply(lambda x: x["user"])
df.to_excel("test1.xlsx")
本站公众号
   欢迎关注本站公众号,获取更多程序园信息
开发小院