Précédent   Forum du club des développeurs et IT Pro > Autres langages > Python & Zope > Général Python
Général Python Forum d'entraide sur les fondamentaux du langage Python, syntaxe, POO, bibliothèque standard, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/02/2013, 15h29   #1
Clorge
En attente de confirmation mail
 
Homme
Inscription : février 2013
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : février 2013
Messages : 35
Points : 23
Points : 23
Par défaut Date formatée des 100 dernières timestamp

Bonjour à tous!

Je bloque actuellement sur un problème qui me semble simple, et malgré de multiples essai et la lecture de la documentation, ça marche jamais

Je souhaite récuperer la date des 100 dernières secondes, (pour info, c'est ça que je veux, et pas autre chose, il n'y a que cette solution qui m'aille)

time.strftime("%d%m%Y - %H:%M:%S") # renvoie la date actuelle de façon formatée

mais j'aurais voulu pouvoir lui passer un timestamp en paramètre, je sais que c'est possible, mais c'est une liste à lui passer et je ne connait que le timestamp.

voilà mon simple code :
Code :
1
2
3
4
5
6
7
 
import time,datetime
number=0
while number<100:
	print(datetime.fromtimestamp(time.time()-number))
	#on utilise strftime pour la suite
	number+=1
et voilà l'erreur rencontré
Code :
1
2
3
 
datetime.fromtimestamp(time.time())
AttributeError: 'module' object has no attribute 'fromtimestamp'
Pouvez-vous m'aider ?

ps : ma version de python 3.2.2
Clorge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 15h40   #2
chticricri
Membre habitué
 
Homme Christian Havard
Développeur informatique
Inscription : mai 2011
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Christian Havard
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 100
Points : 139
Points : 139
Bonjour,

En faisant : tu importe le module time et le moduledatetime

Pour faire ce que tu souhaite, tu aura besoin de la classedatetime
que tu importera comme suit.

Code :
from datetime import datetime
chticricri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 15h46   #3
Clorge
En attente de confirmation mail
 
Homme
Inscription : février 2013
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : février 2013
Messages : 35
Points : 23
Points : 23
Je comprend pas tout ^^" j'import tout le module, ça marche pas, et là si....

Bref, j'y réfléchirais à tête reposé

Merci beaucoup à toi!

voilà le code final :

Code :
1
2
3
4
5
6
7
8
 
import time
from datetime import datetime
time_start=int(time.time())
number=0
while number<100:
	print(datetime.fromtimestamp(time_start-number))
	number+=1
Clorge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 16h04   #4
chticricri
Membre habitué
 
Homme Christian Havard
Développeur informatique
Inscription : mai 2011
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Christian Havard
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 100
Points : 139
Points : 139
C'est très simple:

Dans ton premier code tu cherchais à utiliser une fonction fromtimestamp
qui existerait au niveau du module. Mais celui-ci n'en dispose pas.

Par contre, la classe datetime a une méthode qui permet d'en construire une instance à partir d'un timestamp.

Ainsi, si tu veux absolument importer tout le module, il faudra écrire

Code :
datetime.datettime.fromtimestamp(time_start-number)
Par ailleurs, j'ai l'impression que suivre un tuto sur les bases de la poo ne te ferait pas de mal.

L'idée de base est que tout est objet en python. Ainsi, plutôt que d'écrire des modules qui sont des collections de structures et de fonction (comme en c), on y définira des classes qui embarquera à la fois données et méthodes fonctionnant sur celles-ci.

Cela permet au fonctions génériques, toujours disponibles, de "marcher" avec un de nouveaux objets sans modifications.

J'en veux pour seul exemple la fonction str. Tout ce qu'elle fait est d'appeler
la méthode spéciale __str__ de l'objet qu'on lui passe en argument.
chticricri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 16h08   #5
chticricri
Membre habitué
 
Homme Christian Havard
Développeur informatique
Inscription : mai 2011
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Christian Havard
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2011
Messages : 100
Points : 139
Points : 139
Par défaut Oups !

Mon bout de code est incorrect. Il fait plutôt écrire
Code :
datetime.datetime.fromtimestamp(time_start-number)
(sans redoubler le t)
chticricri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 16h24   #6
Clorge
En attente de confirmation mail
 
Homme
Inscription : février 2013
Messages : 35
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : février 2013
Messages : 35
Points : 23
Points : 23
@chticricri
Merci pour l'explication, je comprend mieux

Pour la POO, je connait (je suis pas un expert non plus) mais instance, attributs, methode, je comprend
De plus ce bout de code, fait partie d'un projet coder en POO...

Encore merci par ton explication, on m'y reprendras plus, c'est juré !
Clorge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2013, 19h33   #7
wiztricks
Expert Confirmé Sénior
 
Inscription : juin 2008
Messages : 3 696
Détails du profil
Informations forums :
Inscription : juin 2008
Messages : 3 696
Points : 4 525
Points : 4 525
Salut,
Je ne vois pas l'intérêt de passer par datetime alors qu'on a déjà les "bonnes" fonctions dans "time":
Code :
1
2
3
4
5
6
7
8
9
import time
 
def get_timestamps(start=0, count=100):
    start = start or time.time()
    return [ time.strftime ("%d%m%Y - %H:%M:%S",
                            time.gmtime(start-n)
                            ) for n in range(count) ]
 
print (get_timestamps(count=10))
- W
__________________
Architectures Post-Modernes
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 07h04.


 
 
 
 
Partenaires

Hébergement Web