Python 如何读取实例id列,然后在相邻列中打印ip地址

Python 如何读取实例id列,然后在相邻列中打印ip地址,python,csv,Python,Csv,我有一个脚本,它在CSV文件中打印出EBS卷及其属性,如下所示。 目录volu_orig.csv Attached To,Volume ID,Classification,FQDN,Created On,Volume Type,Size (GiB) i-c28a836f,vol-21eff464,Service,serv.company.com,2014-09-30T12:57:24.850Z,General Purpose SSD,50 i-8ba09c2b,vol-a2b2d351,Engi

我有一个脚本,它在CSV文件中打印出EBS卷及其属性,如下所示。 目录volu_orig.csv

Attached To,Volume ID,Classification,FQDN,Created On,Volume Type,Size (GiB)
i-c28a836f,vol-21eff464,Service,serv.company.com,2014-09-30T12:57:24.850Z,General Purpose SSD,50
i-8ba09c2b,vol-a2b2d351,Engine,eng.company.com,2015-09-16T05:39:47.521Z,General Purpose SSD,150
N/A,vol-888a63ce,Data,da4.company.com,2015-06-02T05:18:25.390Z,General Purpose SSD,200
最后一行中的不适用是因为卷已与实例分离

我想要的是在instnace id旁边再添加一列,其中包含附加实例的IP地址。我不是一个程序员,我复制粘贴并尝试不同的脚本,然后稍作修改以满足我的需要。使用这种技术,我准备了一个脚本,它读取实例id并返回其IP地址。例如,当我`

pythongetattrib.pyget i-c28a836f | cut-d“”-f2

`然后我得到10.0.134.78作为回报

我使用shell脚本调用卷脚本,该脚本将输出文件保存为vol_orig.csv

python vol-report.py--访问密钥--机密密钥--文件 vol_orig.csv

Attached To,Volume ID,Classification,FQDN,Created On,Volume Type,Size (GiB)
i-c28a836f,vol-21eff464,Service,serv.company.com,2014-09-30T12:57:24.850Z,General Purpose SSD,50
i-8ba09c2b,vol-a2b2d351,Engine,eng.company.com,2015-09-16T05:39:47.521Z,General Purpose SSD,150
N/A,vol-888a63ce,Data,da4.company.com,2015-06-02T05:18:25.390Z,General Purpose SSD,200
我如何使用getattrib.py脚本,以便每个实例的IP地址都以逗号分隔打印在它的旁边。 另外,如果存在N/A而不是实例id,则在不运行getattrib.py的情况下,它必须在相邻列中再打印一个N/A

我考虑的最终结果如下:

Attached To,IP Address,Volume ID,Classification,FQDN,Created On,Volume Type,Size (GiB)
i-c28a836f,10.0.134.78,vol-21eff464,Service,serv.company.com,2014-09-30T12:57:24.850Z,General Purpose SSD,50
i-8ba09c2b,10.0.135.78,vol-a2b2d351,Engine,eng.company.com,2015-09-16T05:39:47.521Z,General Purpose SSD,150
N/A,N/A,vol-888a63ce,Data,da4.company.com,2015-06-02T05:18:25.390Z,General Purpose SSD,200
短暂性脑缺血发作
sbasnet

使用
csv
模块。自己编辑
getattrib
函数

import csv

dct = {
    "i-c28a836f": "10.0.134.78",
    "i-8ba09c2b": "10.0.135.78",
}
def getattrib(att):
    if att == "N/A":
        return "N/A"

    return dct[att]

with open("ebs.csv", 'r') as r:
    header = r.readline()
    reader = csv.reader(r)

    with open("new.csv", 'w') as w:
        writer = csv.writer(w)
        for att, volid, cls, fqdn, cr, voltype, size in reader:
            writer.writerow([att, getattrib(att), volid, cls, fqdn, cr, voltype, size])

谢谢你的回答。需要明确的是,您建议的代码将添加到打印EBS卷的脚本中,正确吗???/无论您想在哪里执行。