我有一个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'
答案 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')