在整个循环结束时打印最终结果

2024-04-24 10:55:03 发布

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

代码块看起来像

regions = ['us-east-1','us-west-1','us-west-2','eu-west-1','sa-east-1','ap-southeast-1','ap-southeast-2','ap-northeast-1']

data = []
header = ["Port","Open For","Security group","Instance Details"]

    for region in regions:
        connection=ec2.connect_to_region(region)
        sg = connection.get_all_security_groups()
        try:
            for securityGroup in sg:
               for rule in securityGroup.rules:
                   if '0.0.0.0/0' in str(rule.grants):
                      for instanceid in securityGroup.instances():
                          instanceId=str(instanceid)
                         # print instanceId
                          tag = getTag(connection, instanceId.split(':')[1])
                          if tag is not None:
                            # print tab              
                               tab =[str(rule.to_port),"0.0.0.0/0",str(securityGroup.name),str(getTag(connection, instanceId.split(':')[1]))]
                               data.append(tab)
            print tabulate(data, headers=header, tablefmt='simple')

结果如下:

  Port  Open For    Security group           Instance Details
------  ----------  -----------------------  ------------------------------------------------------------------------
 65535  0.0.0.0/0   launch-wizard-mingjun    (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1)
    22  0.0.0.0/0   launch-wizard-mingjun    (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1)
    80  0.0.0.0/0   SSH+HTTPS                (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1)
    22  0.0.0.0/0   SSH+HTTPS                (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1)
   443  0.0.0.0/0   SSH+HTTPS                (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1)
    22  0.0.0.0/0   na-prod-1w-secgroup      (u'na-prod-1w-scc-94a54e56', u'10.197.51.19', RegionInfo:us-west-1)

在这里等一段时间然后打印

  Port  Open For    Security group           Instance Details
------  ----------  -----------------------  ------------------------------------------------------------------------
 65535  0.0.0.0/0   launch-wizard-mingjun    (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1)
    22  0.0.0.0/0   launch-wizard-mingjun    (u'testVM10001', u'192.168.0.93', RegionInfo:us-east-1)
    80  0.0.0.0/0   SSH+HTTPS                (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1)
    22  0.0.0.0/0   SSH+HTTPS                (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1)
   443  0.0.0.0/0   SSH+HTTPS                (u'security_monkey_production', u'172.30.2.31', RegionInfo:us-east-1)
    22  0.0.0.0/0   na-prod-1w-secgroup      (u'na-prod-1w-scc-94a54e56', u'10.197.51.19', RegionInfo:us-west-1)
   443  0.0.0.0/0   na-prod-1w-secgroup      (u'na-prod-1w-scc-94a54e56', u'10.197.51.19', RegionInfo:us-west-1)
    80  0.0.0.0/0   sfo01-devops-haproxy-sg  (u'sfo01-cwptest-LBi-f207da47', u'192.168.80.171', RegionInfo:us-west-1)
    80  0.0.0.0/0   sfo01-devops-haproxy-sg  (u'sfo01-cwptest-LBi-e1a72422', u'192.168.80.156', RegionInfo:us-west-1)
   443  0.0.0.0/0   sfo01-devops-haproxy-sg  (u'sfo01-cwptest-LBi-f207da47', u'192.168.80.171', RegionInfo:us-west-1)
   443  0.0.0.0/0   sfo01-devops-haproxy-sg  (u'sfo01-cwptest-LBi-e1a72422', u'192.168.80.156', RegionInfo:us-west-1)
 65535  0.0.0.0/0   Nishant-Open             (u'POC-demo-es/kib', u'10.205.11.150', RegionInfo:us-west-2)
    22  0.0.0.0/0   Nishant-Open             (u'POC-demo-es/kib', u'10.205.11.150', RegionInfo:us-west-2)
  5601  0.0.0.0/0   Nishant-Open  
....

为什么不一次性??你知道吗


Tags: inhttpsprodopensgsshmonkeyproduction
2条回答

在for循环开始之前可以做的是创建名为dataheader的列表变量

data = []
header = ["Port","Open For","Security group","Instance Details"]
for region in regions:
    # your code....
    .
    .
    .
    if tag is not None:
        tab =[str(rule.to_port),"0.0.0.0/0",str(securityGroup.name),str(getTag(connection, instanceId.split(':')[1]))]    
        data.append(tab)
print tabulate(data, headers=header, tablefmt='grid')

将tag的值存储在dictionary甚至list中,并在程序末尾打印dictionary。您可以使用打印格式以表格形式打印。你知道吗

相关问题 更多 >