代码片段:
import xlrd
wb = xlrd.open_workbook("links.xls")
sh = wb.sheet_by_index(0)
count = 0
for row in range(1, sh.nrows):
val = sh.row_values(row)
if (val[4]) != 2:
print 'id',str(int(val[0])), 'value', str(int(val[1])) + "-" + str(int(val[2]))
else:
print 'id',str(int(val[0])), 'value', str(int(val[1])) + "-" + str(int(val[2]))
print 'id',str(int(val[0])), 'value', str(int(val[2])) + "-" + str(int(val[1]))links.xls
id From To Len Permlanes
1 1 7 350 9
2 1 8 460 3
3 1 3 490 2
4 2 9 220 2
5 2 7 540 1
6 2 8 590 1
7 3 6 250 1
8 4 4 290 6
9 4 9 570 1
10 4 2 430 1输出:
id 1 value 1-7
id 2 value 1-8
id 3 value 1-3
id 3 value 3-1
id 4 value 2-9
id 4 value 9-2
id 5 value 2-7
id 6 value 2-8
id 7 value 3-6
id 8 value 4-4
id 9 value 4-9
id 10 value 4-2预期产出:
id 1 value 1-7
id 2 value 1-8
id 3 value 1-3
id 4 value 3-1
id 5 value 2-9
id 6 value 9-2
id 7 value 2-7
id 8 value 2-8
id 9 value 3-6
id 10 value 4-4
id 11 value 4-9
id 12 value 4-2上面的代码是我正在处理的一个项目的一个小描述。当excel文件中的permlanes fields is 2被写入时,value会以交替模式写两次,即1-3 and 3-1,但是id输出并不像预期的那样。有人能帮助我调整代码,使id output是串行的(就像预期的输出一样),而不是现在输出中出现的那样。我使用excel文件元素列表的索引进行循环的尝试显然不起作用,因为无法访问excel文件的元素。
谢谢您抽时间见我。
发布于 2016-03-30 21:12:04
我看到您有未使用的count变量,所以我使用它来跟踪输出索引,每次打印新id时都会增加它。
import xlrd
wb = xlrd.open_workbook("links.xls")
sh = wb.sheet_by_index(0)
count = 1
for row in range(1, sh.nrows):
val = sh.row_values(row)
if (val[4]) != 2:
print 'id',str(int(count)), 'value', str(int(val[1])) + "-" + str(int(val[2]))
else:
print 'id',str(int(count)), 'value', str(int(val[1])) + "-" + str(int(val[2]))
count+=1
print 'id',str(int(count)), 'value', str(int(val[2])) + "-" + str(int(val[1]))
count+=1https://stackoverflow.com/questions/36319687
复制相似问题