Bonjour,
Je me permets de vous contacter car j'ai un petit souci sur la conversion des mes dates.
j'ai une liste de ce type:
D'après ma condition avec le code entier pour mieux comprendre la démarche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ['system01', 'toto', 'tty7', ':0', 'Fri', 'Aug', '26', '10:04', '-', '16:04', '(05:59)', '\n', '26/08/2015 a 10:04', 'INACTIVE']
Mon problème :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 list_systems = [] filepath = '/opt/portail-api/api-satellite/apisatellite/static/scripts/CRON_AUTO_LAST_LOGON.txt' with open(filepath,'r') as file: for i in range(8): file.readline() for line in file: list_systems.extend([line.split(';')]) for item in list_systems: date = datetime.strptime(' '.join(item[4:8]), "%a %b %d %H:%M").replace(year=datetime.today().year).strftime('%d/%m/%Y a %H:%M') item.append(date) if item[0] in [x['name'] for x in client.system.listActiveSystems(key)]: item.append('ACTIVE') else: item.append('INACTIVE') # Si dans mon element x, le dernier champ est ACTIVE et si les champs jours et mois (ici 'Mon','May','13') dépasse la date d'aujourd'hui de plus de 3 mois d'écart if item[13] == 'ACTIVE' and (datetime.now()-item[12]).days > 90: item.append('WARNING') else: item.append('OK')
Ce qui est normal. Mais mon item[12] qui est au format str, je veux pouvoir le remettre en datetime.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Traceback (most recent call last) File "/opt/portail-api/api-satellite/apisatellite/views.py", line 287, in last_logon if item[13] == 'ACTIVE' and (datetime.now()-item[12]).days > 90: TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'str'
Est ce possible? Ou il y a t il une façon plus simple de le faire?
Partager