如何迭代列中的每个单元格并对每个

时间:2017-08-07 20:01:17

标签: python openpyxl

我有一个excel文档列出了几个IP地址,我需要迭代列中的每个单元格并执行ping操作以确定每个IP是否已启动。然后我需要将ping函数的结果写入文本文件。

因此,在A栏的电子表格中,从A1开始将是:

10.10.10.10
20.20.20.20
30.30.30.30
40.40.40.40

脚本应该读取每一行,ping每个IP地址,然后写入文本文件“10.10.10.10。已启动,20.20.20.20已关闭”,等等

import os
import openpyxl
import time


wb = openpyxl.load_workbook('IPS.xlsx')
sheet = wb.get_sheet_by_name('Sheet1')
with open(time.strftime("%d-%m-%Y") + "-Decom.txt", "w") as s:
    for i in range(1, sheet.max_row):
        response = os.system("ping -n 2" + sheet[i].value )
        if response == 0:
            s.write(sheet[i].value, 'is up')
        else:
            s.write(sheet[i].value, 'is down')
  

c:\ Python35 \ Scripts> python ping.py Traceback(最近一次调用最后一次):   文件“ping.py”,第10行,in       response = os.system(“ping -n 2”+ sheet [i] .value)AttributeError:'tuple'对象没有属性'value'

1 个答案:

答案 0 :(得分:1)

执行sheet[i].value时,sheet[i]会连续返回一组单元格值。

但是,有一种更简单的方法来迭代特定列的单元格:

for cell in sheet['A']:        
    value = cell.value

    response = os.system("ping -n 2" + value)
    s.write(value, 'is up' if response == 0 else 'is down')