[python] récupérer la date

Résolu/Fermé
serpent - 17 mai 2005 à 17:32
 python - 17 mars 2018 à 16:22
Bonjour,
j'ai un projet à rendre bientôt en python.

Je cherche la fonction la plus simple du module le plus simple pour afficher la date et l'heure la plus simple (en string)

j'aimerai qqch du type : "11/05/04 17:28"

Quelqu'un peut-il m'aider ?

42 réponses

sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
17 mai 2005 à 18:03
import time
print time.strftime('%d/%m/%y %H:%M',time.localtime())  

strfrtime te permet de formatter la date comme bon te semble.

Voir http://www.python.org/doc/2.1.3/lib/module-time.html#l2h-1299
40
je te remercie
la fonction est vraiment très simple d'utilisation


je n'ai plus besoin de ce que j'avais écrit avant avec le module datetime mais j'aimerais bien savoir toutefois à quoi servent ces paramètres
0
:)
0
merci

mais je ne comprends pas très bien à quoi servent les paramètres que je passe dans ce genre de classes :(

import datetime
q=datetime.datetime(15,1,1,1)
print q.today()

qu'importe les paramètres que je passe, il me retourne toujours la même chose. A quoi cela correspond-il ?
3
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
17 mai 2005 à 18:24
mais je ne comprends pas très bien à quoi servent les paramètres


Tout ce qu'il y a entre les guillemets (%y %m etc.) permet de choisir ton format de date.

Par exemple:
import time
print time.strftime('Nous sommes en %Y, et il est %H:%M.',time.localtime()) 

affichera:
"Nous sommes en 2005, et il est 18:21."


Les %X seront remplacés par l'informations correspondante (année, mois, jour, etc.)
1
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
17 mai 2005 à 18:23
C'est normal:
today() renvoie systématiquement la date du jour.

Il suffit de faire:
print q

pour afficher ta date, c'est tout !
Tu n'as pas besoin d'appeler today()
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Est-il possible de raffraichir les secondes par ex 17:00:01, le 01 change toute les secondes?
0
fleur_du_mal Messages postés 23 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 26 août 2010 1
23 avril 2010 à 13:52
merci est il possible de récuperer aussi le code erreur de fichiers
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
Modifié par sebsauvage le 23/04/2010 à 14:00
Les informations disponibles pour chaque erreur dépendent de l'exception.
Chaque exception peut contenir des informations différentes.

Exemple: ouvrir un fichier qui n'existe pas:
try: 
    open("jenexsitepas.txt","r") 
except IOError, e: 
    print e.args 
    print e.errno


Cela affichera:
(2, 'No such file or directory') 
2


2 étant le code d'erreur.

Le nombre et le types des arguments peut varier d'une excepition à l'autre.
Il y a des exceptions standards : https://docs.python.org/release/2.5.2/lib/module-exceptions.html
Mais chaque module (ou programme) peut avoir ses propres exceptions.
0
fleur_du_mal Messages postés 23 Date d'inscription jeudi 22 avril 2010 Statut Membre Dernière intervention 26 août 2010 1
23 avril 2010 à 14:07
merci pour ta réponse. par ailleurs moi je cherche à récupérer ce code erreur afin de le testé et lui associé un traitement spécial et crere par la suite un fichier pour récuperer toutes les anomalies.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
Modifié par sebsauvage le 23/04/2010 à 14:17
Certaines exceptions n'ont pas de code d'erreur, tu aura donc du mal à faire une règle générique.
(Par exemple, tu pourra pour IOError, mais par pour ValueError).

Par contre tu peux trapper différents types d'exception et faire des traitements différents.
Exemple:
try: 
    open("tiit.tt","r") 
    # autres opérations...
except IOError, e: 
    print "Traitement specifique a IOError: code=",e.errno 
except ValueError,e: 
    print "Traitement specifique a ValueError" 
except Exception, e: 
    print "Exception generique:",str(e)
0
fleur_du_mal
26 avril 2010 à 09:12
salut,
merci beaucoup sebsauvage des informations me sont très utiles cependant je voudrais savoir si tu as une idée sur les fichiers indexés et si c possible de les gérer avec python.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
26 avril 2010 à 09:45
qu'est-ce que tu appelle fichiers indexé ?

Perso quand j'ai des données indexée à traiter, je prend une base SQLite.
C'est terriblement performant, surtout pour tout ce qui concerne opérations d'index.
(C'est d'ailleurs ce que j'utilise pour la version téléchargeable de la base de connaissance CCM.)

SQLite est très performant.

Quelques exemples de SQLite là:
https://sebsauvage.net/python/snyppets/#sqlite
0
fleur_du_mal
26 avril 2010 à 11:44
Un fichier indexé est un fichier qui possède un index en fonction d'une clé. C'est grâce à cette clé qu'il est possible de retrouver de l'information sur le système de fichier indexé.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
Modifié par sebsauvage le 26/04/2010 à 13:26
Ok alors tu as deux possibilités:
- Les dictionnaire python
- SQLite si tu as besoin de plusieurs indexes.

Exemple de dictionnaire:
>>> mondico={} 
>>> mondico['premier']='john' 
>>> mondico['second']='titi' 
>>> print mondico['premier'] 
john 
>>>


Les "dictionnaires" Python sont en fait des hashtables. La clé (premier,second...) peut être de n'importe quel type de base (entier, chaine...). La clé est hashée et permet de retrouver les données. C'est extrêmement rapide.

Si tu as besoin d'index sur plusieurs colonnes, soit tu fais plusieurs dictionnaire, soit tu utilises SQLite (on peut faire des bases de données "in-memory", en mémoire, sans écritures disque).

Autre avantage de SQLite; il peut gérer des quantité énormes de données (pratique si tu as des données qui ne tiennent pas en mémoire).
0
fleur_du_mal
27 avril 2010 à 11:28
merci :)
je voudrais savoir si l'on peut avoir la liste de tous les codes erreurs I/O. enfin je veux dire le numéro d'erreur et la cause de l'erreur.
exemple:
code erreur = 2 => no such file or directory

j'ai cherché sur internet mais je trouve rien j'aimerais bien avoir une liste qui me détaille tous les numéros d'erreur existants afin d'associer à chacun un traitement spécifique.
et merci d'avance
0
fleur_du_mal
27 avril 2010 à 11:38
je travaille sous VMS
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
27 avril 2010 à 12:46
Pour tout ce qui est entrées/sorties gérées par le système d'exploitation, voir errno.h

http://www.koders.com/c/fid53B3BE16088320EE31E67B12F901FE3FB9D1F480.aspx?s=cdefs
0
fleur_du_mal
27 avril 2010 à 13:41
est ce que ça marche aussi pour VMS ?

et merci
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
27 avril 2010 à 20:48
Je pense que oui.
0
fleur_du_mal
28 avril 2010 à 14:23
merci beaucoup
cependant j'ai une autre question: est il possible de faire appel à des programmes fait avec d'autres langages dans un programme python.
genre g un programme en cobol et je veux l'utiliser mais je vois pas comment faire. j'ai pensé à exécuter le programme cobol mais c trop compliqué vu le nombre de paramètres qu'il faut gérer.
toute proposition serait la bienvenue :)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
28 avril 2010 à 17:34
ça dépend des programmes.

On peut utiliser os.system() ou le module subprocess pour lancer d'autres programmes et récupérer leur sortie (je le fais souvent, ça marche assez bien).

On peut aussi faire appel à des DLL ou des fonctions systèmes avec le module CTYPES (par exemple pour faire des appels spécifiques à Windows).

Pour le cobol je ne sais pas trop... probablement en lançant cobol en ligne de commande avec le module subprocess.
0
fleur_du_mal
29 avril 2010 à 09:14
bonjour
j'ai pas bien saisi ce que tu m'a expliqué. donc si je veux utilisé par exemple le module subprocess est ce que j'utiliserais le programme directement ou passer par son exécutable .est ce que tu pourrais me donner un exemple si possible.
et merci d'avance
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
29 avril 2010 à 09:36
subprocess permet de lancer un autre programme comme tu le ferais en ligne de commande.
Tu lancerait donc l'interpréteur Cobol en passant en argument le nom du programme Cobol que tu veux lancer.

J'ai mis un exemple avec le module subprocess là:
https://sebsauvage.net/python/snyppets/#capture_output
0
fleur_du_mal
29 avril 2010 à 09:56
si j'ai bien compris il suffit juste de mettre :
import subprocess
myprocess = subprocess.Popen(nom_du_programme)
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
29 avril 2010 à 09:57
à peu de choses près, oui.
0
fleur_du_mal
29 avril 2010 à 10:37
je crois que subprocess fonctionne sur Windows et unix. mais je ne sais pas si ça marche aussi avec VMS.
????
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
29 avril 2010 à 12:55
En principe ça marche sur presque tous les systèmes. C'est à tester.

Commence par essayer de lancer une commande VMS simple, genre qui renvoie juste une information simple (date, version du système, listage d'un répertoire...)
0
fleur_du_mal
30 avril 2010 à 09:41
bonjour,
Si j'ai bien compris c'est bien une commande que tu passes en argument tandis que moi je voulais savoir si l'on pouvait lui passait un fichier qui contient notre programme exemlpe:
myprocess = subprocess.Popen(programme.c)
est ce que cela est permis?
et merci
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
30 avril 2010 à 09:58
La commande que tu passes en argument doit être un programme exécutable ou un script.
Un fichier .c n'est pas directement exécutable.

ça pourrait être quelque chose du genre:
myprocess = subprocess.Popen("interpréteurcobol","monprogramme.cobol")
0
fleur_du_mal
3 mai 2010 à 09:24
bonjour
je souhaiterais poser une question un peu bête. mais comment on peux faire pour récupérer l'exécutable de notre programme en python??
et merci d'avance
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
3 mai 2010 à 09:31
Python n'est pas un compilateur. Python doit être installé pour que le programme fonctionne.
0
fleur_du_mal
3 mai 2010 à 10:00
pour être plus claire j'ai un autre programme enfin un train de commande avec DCL qui doit faire appel à un exécutable et vu que les traitements que je souhaite faire sont dans un programme en python donc je dois ajouté l'exécutable de mon programme python dans le train de commande. est ce que cela est possible ( c-à-d récupérer l'exécutable) sinon y a t-il un autre moyen.
et merci pour vos réponses
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 655
3 mai 2010 à 11:28
Il lancer lancer python en passant comme paramètre le chemin de ton source .py
0