Sto usando xlrd
per lavorare su file xls. Il mio file xls ha due colonne e il mio requisito è quello di assicurarmi che entrambe le colonne abbiano lo stesso numero di righe. Ho appreso da help()
che abbiamo un row_len()
per cercare la lunghezza di una riga data con l'indice, ma non è possibile trovarne uno per col_len
. Potete per favore aiutare con qualsiasiPython: XLRD; confronta la lunghezza delle colonne
Ecco il mio codice
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"
Alcune altre opzioni oltre a confronto i Di seguito viene
>>> print len(sheet1.col_values(0))
8
>>> print len(sheet1.col_values(1))
8
Grazie per la risposta @alecxe. Invece aggiungendo poche altre righe al mio codice, ho scoperto qualcosa di seguito. si prega di avvisare sarà questo lavoro fuori
>>> 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
>>>
Cosa c'è di sbagliato con 'len (sheet1.col_values (0))'? –
Grazie per la tua risposta @MikeMuller. Dato che sono un novizio di Python, sto cercando di imparare tutti i BIF che risparmiano lo sforzo. Solo curioso di sapere se esiste già in Python oltre a 'len (sheet1.col_values (0))'. – Sathy
Che cosa intendi esattamente per lunghezza della colonna? Ci possono essere celle vuote ovunque. –