Je suis assez nouveau sur Python, donc j'espère que le problème que j'ai est une solution simple. Au travail, nous utilisons toujours Shell (ksh) ou Perl pour tous nos travaux de script. Depuis que Python est livré avec Solaris depuis un certain temps, il a (finalement) reçu le feu vert comme plate-forme de script. J'ai commencé à prototyper quelques améliorations à nos scripts en utilisant Python. Ce que j'essaie de faire est de prendre un horodatage et une chaîne représentant un horodatage et de créer un objet datetime pour une date arithmétique.Python datetime TypeError, integer attendu
Mon code exemple suivant:
#!/bin/python
import datetime
fileTime="201009211100"
format = "YYYYmmdd"
yIdxS = format.find('Y')
yIdxE = format.rfind('Y')
if not fileTime[yIdxS:yIdxE+1].isdigit():
print "ERROR: Year in wrong format"
exit
else:
print "Year [" + fileTime[yIdxS:yIdxE+1] + "]"
mIdxS = format.find('m')
mIdxE = format.rfind('m')
if not fileTime[mIdxS:mIdxE+1].isdigit():
print "ERROR: Month in wrong format"
exit
else:
print "Month [" + fileTime[mIdxS:mIdxE+1] + "]"
dIdxS = format.find('d')
dIdxE = format.rfind('d')
if not fileTime[dIdxS:dIdxE+1].isdigit():
print "ERROR: Day in wrong format"
exit
else:
print "Day [" + fileTime[dIdxS:dIdxE+1] + "]"
old = datetime.date(fileTime[yIdxS:yIdxE+1], \
fileTime[mIdxS:mIdxE+1], \
fileTime[dIdxS:dIdxE+1]);
Je reçois la sortie suivante/erreur:
Year [2010]
Month [09]
Day [21]
Traceback (most recent call last):
File "./example.py", line 37, in <module>
fileTime[dIdxS:dIdxE+1]);
TypeError: an integer is required
Je ne comprends pas pourquoi je reçois cette exception TypeError. Ma compréhension du typage dynamique de Python est que je n'aurais pas besoin de convertir une chaîne en un entier si la chaîne est tous des chiffres.
Donc, le problème semble être soit je manque quelque chose dont j'ai besoin, ou ma compréhension de la langue est erronée.
Toute aide serait grandement appréciée. Merci.
Une petite convention couramment utilisée: utiliser pour la première ligne '#/usr/bin/python' env!. Voir [cette question] (http://stackoverflow.com/questions/2429511/why-do-people-write-usr-bin-env-python-on-the-first-line-of-a-python-script) . – snapshoe