【发布时间】:2016-08-03 17:29:41
【问题描述】:
我有一个正在阅读的 excel 文档,它的行数未知,我想将每一行以及 A B 和 C 列的三个值添加到一个列表中,然后在我没有达到任何值时停止。然后我想对列表中的每个项目运行一个操作。
如果有人可以提供帮助,我对if/for loops 感到很糟糕。
下面是将参数 3 作为工作簿和工作表加载。我需要从A61 行开始,然后将A61,B61,C61 添加到列表中,然后继续进行,直到 A 不管是 = 无。
好吧,我到此为止了,现在如何为行中的每个项目运行命令?
if len(sys.argv) > 3:
wb = xlrd.open_workbook(sys.argv[3])
sheet = wb.sheet_by_index(0)
first_kvm_ip = str(sheet.cell_value(34,1))
last_kvm_ip = str(sheet.cell_value(35,1))
kvm_netmask = str(sheet.cell_value(36,1))
rows = sheet.nrows
curr_row = 52
while (curr_row < rows - 1):
curr_row += 1
row1 = int(sheet.cell_value(curr_row,0))
row2 = str(sheet.cell_value(curr_row,1))
vlanls1.append(row1)
vlanls2.append(row2)
我想为 row1 中的每个项目运行一个命令 vlan create(row1,row2)
我假设我需要一个 for i 迭代。我只是需要帮助。
我需要为 row1 和 row2 的每次迭代运行此命令
mo = FabricVlan(parent_mo_or_dn="fabric/lan", sharing="none", name=row2, id=row1, mcast_policy_name="", policy_owner="local", default_net="no", pub_nw_name="", compression_type="included")
handle.add_mo(mo)
好吧,我想我终于明白了。谢谢大家的帮助。
if len(sys.argv) > 3:
wb = xlrd.open_workbook(sys.argv[3])
sheet = wb.sheet_by_index(0)
first_kvm_ip = str(sheet.cell_value(34,1))
last_kvm_ip = str(sheet.cell_value(35,1))
kvm_netmask = str(sheet.cell_value(36,1))
rows = sheet.nrows
curr_row = 52
while (curr_row < rows - 1):
curr_row += 1
row1 = int(sheet.cell_value(curr_row,0))
row2 = str(sheet.cell_value(curr_row,1))
vlanls1.append(row1)
vlanls2.append(row2)
for x,y in zip(vlanls1,vlanls2):
mo = FabricVlan(parent_mo_or_dn="fabric/lan", sharing="none", name=y, id=x, mcast_policy_name="", policy_owner="local", default_net="no", pub_nw_name="", compression_type="included")
handle.add_mo(mo)
【问题讨论】:
-
到目前为止你都尝试过什么?您是否尝试过在 google 或 stackoverflow 上查找类似的读取 excel 文件的问题??
-
当然,在放弃之前一直在寻找大约 3-4 小时。它没有读取我真正需要帮助的 excel 文件,而是将数据添加到列表中并执行列表中的项目数量,然后停止。
标签: python python-3.x if-statement for-loop