J'ai rencontré un problème "littéral invalide pour int() avec base 10: ''", ce qui signifie que python ne peut pas convertir '' en entiers. Mais j'ai déjà ajouté une condition if(sh.cell_value(rowx=rx, colx=3)!=''):
, qui pourrait sauter les blocs qui ne contient rien dans l'excel. Est-ce que quelqu'un a une idée? Merci beaucoup!littéral invalide pour int() avec base 10: ''
import xlrd
book = xlrd.open_workbook("streeteasy.xls")
sh = book.sheet_by_index(0)
total = 0
for rx in range (sh.nrows):
if(sh.cell_value(rowx=rx, colx=3)!=''):
s = sh.cell_value(rowx=rx, colx=3)
print filter(unicode.isdigit, s)
print int(filter(unicode.isdigit, s))
total += int(filter(unicode.isdigit, s))
Si le message d'erreur que vous citez est le message d'erreur réel, la chaîne n'est pas vide. Il contient un espace. De plus, même si votre bloc 'if' ne s'exécute pas, vous continuez le reste de la boucle et essayez d'appeler' int' sur 's'. – BrenBarn
cochez 'si string.strip()', ce qui supprimera les espaces withe ... –
@BrenBarn A moins que le post ait été édité par ninja après votre commentaire, je pense que vous avez mal lu. '' '' est la chaîne vide - pas d'espace. – sepp2k