J'utilise xlrd
pour travailler sur des fichiers xls. Mon fichier xls a deux colonnes et mon exigence est de s'assurer que les deux colonnes ont un nombre égal de lignes. J'ai appris de help()
que nous avons un row_len()
pour rechercher la longueur d'une ligne donnée avec l'index, mais incapable d'en trouver pour col_len
. Pouvez-vous s'il vous plaît aider avec toutPython: XLRD; comparer les colonnes longueur
Voici mon code
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"
Quelques autres options en dehors de comparer les ci-dessous vous plaît
>>> print len(sheet1.col_values(0))
8
>>> print len(sheet1.col_values(1))
8
Merci pour votre réponse @alecxe. Au lieu d'ajouter quelques lignes supplémentaires à mon code, j'ai découvert quelque chose ci-dessous. S'il vous plaît conseiller cela fonctionnera sur
>>> 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
>>>
Quel est le problème avec 'len (sheet1.col_values (0))'? –
Merci pour votre réponse @MikeMuller. Depuis que je suis un débutant à Python, j'essaie d'apprendre tous les BIFs, ce qui économise l'effort. Juste curieux de savoir s'il existe en Python autre que 'len (sheet1.col_values (0))'. – Sathy
Qu'entendez-vous exactement par longueur de colonne? Il peut y avoir des cellules vides n'importe où. –