Tôi đang sử dụng xlrd
để hoạt động trên các tệp xls. Tệp xls của tôi có hai cột và yêu cầu của tôi là đảm bảo cả hai cột đều có số hàng bằng nhau. Tôi đã học được từ help()
rằng chúng tôi đã có một row_len()
để tìm chiều dài của một hàng được đưa ra với chỉ mục, nhưng không thể tìm thấy bất kỳ cho col_len
. bạn có thể xin vui lòng giúp đỡ với bất kỳPython: XLRD; so sánh chiều dài cột
Đây là mã của tôi
from xlrd import open_workbook
spread_sheet=open_workbook("simple.xls")
sheet1=spread_sheet.sheet_by_index(0)
#validates the no of columns in the Spread sheet
if sheet1.ncols == 2:
for sheet1_rows in range(sheet1.nrows):
for sheet1_cols in range(sheet1.ncols):
value=sheet1.cell(sheet1_rows,sheet1_cols).value
source=sheet1.cell(sheet1_rows,0).value
destination=sheet1.cell(sheet1_rows,1).value
#ignores the Source and Destination Headers
if value not in ('Source','Destination'):
print "Source is : %s \nDestination is : %s\n" % (source,destination)
else:
print "XLS provided is not valid. Check the no of columns is 2"
Một số tùy chọn khác ngoài việc so sánh dưới đây xin vui lòng
>>> print len(sheet1.col_values(0))
8
>>> print len(sheet1.col_values(1))
8
Cảm ơn trả lời @alecxe của bạn. Thay vào đó, thêm vài dòng nữa vào mã của tôi, tôi đã tìm ra điều gì đó bên dưới. vui lòng thông báo điều này sẽ hoạt động ra
>>> print len(sheet1.col_values(0))
6
>>> print len(sheet1.col_values(1))
6
>>> sheet1.col_values(0)
[u'A', 1.0, 1.0, 1.0, 1.0, 2.0]
>>> sheet1.col_values(1)
[u'B', 2.0, 2.0, 2.0, 2.0, '']
>>> print len(filter(None,sheet1.col_values(1)))
5
>>>
Có gì sai với 'len (sheet1.col_values (0))'? –
Cảm ơn bạn đã trả lời @MikeMuller. Vì tôi là người mới sử dụng Python, tôi đang cố gắng tìm hiểu tất cả các BIF để tiết kiệm công sức. Chỉ cần tò mò để biết nếu có bất kỳ hiện có trong Python khác hơn 'len (sheet1.col_values (0))'. – Sathy
Chính xác bạn muốn nói gì về độ dài cột? Có thể có các ô trống ở bất kỳ đâu. –