2010-08-31 5 views
1

Recherché un moyen facile d'extraire l'année mois et le jour d'une chaîne. En utilisant Python 3.1.2Python 3 comportement de tranche de chaîne incohérent

essayé ceci:

processdate = "20100818" 
print(processdate[0:4]) 
print(processdate[4:2]) 
print(processdate[6:2]) 

Résultats dans:

...2010 
... 
... 

Relisez toutes les chaînes docs, fait quelques recherches, ne peut pas comprendre pourquoi ce serait Ce faisant. Je suis sûr que c'est une évidence que je manque d'une façon ou d'une autre, je viens juste de me cogner la tête dessus assez aujourd'hui.

Répondre

6

Avec une tranche de [4: 2], vous dire Python pour commencer à l'index de caractère 4 et arrêter à l'index de caractère 2. Depuis 4> 2, vous êtes déjà passé où vous devez arrêter lorsque vous commencez, donc la tranche est vide.

Vouliez-vous les quatrième et cinquième caractères? Ensuite, vous voulez [4: 6] à la place.

+0

Ah, quelque part le long de la façon dont j'eu l'impression que 4: 2 était caractère de début 4 longueur de 2 pas caractère de début 4 à carboniser 2 Comme je l'ai dit, c'était une chose bonehead je viens de manquer le long du chemin . Merci. – Alan

+1

Veuillez marquer ceci comme la bonne réponse pour donner crédit à @kindall! :) – jathanism

+1

Ou marquer le mien comme correct parce que j'ai effectivement fixé le code - et a répondu en premier. – duffymo

2
processdate = "20100818" 
print(processdate[0:4]) # year 
print(processdate[4:6]) # month 
print(processdate[6:8]) # date 
6

La meilleure façon de le faire est avec strptime!

print(strptime(..., "%Y%m%d")) 
+0

Oh regarde là. Cela pourrait être utile. TY – Alan

Questions connexes