Deutsch   English   Français   Italiano  
<t6ndp3$1igp$1@gioia.aioe.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!news.mixmin.net!aioe.org!TRK/oqkT5dynzPYO4XPaDw.user.46.165.242.91.POSTED!not-for-mail
From: Dominique <zzz@aol.com.invalid>
Newsgroups: fr.comp.lang.python
Subject: =?UTF-8?Q?Comportement_=c3=a9trange_avec_IN_et_OR=2e=2e=2e?=
Date: Thu, 26 May 2022 10:29:23 +0200
Organization: Aioe.org NNTP Server
Message-ID: <t6ndp3$1igp$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="51737"; posting-host="TRK/oqkT5dynzPYO4XPaDw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
 Thunderbird/91.9.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: fr
Bytes: 2349
Lines: 60

Bonjour,

Je dois commettre une erreur, mais je ne vois pas laquelle. J'extrais 
une unique ligne d'un fichier log :

test='[22118.286892] i915 0000:00:02.0: [drm] *ERROR* AUX C/DDI C 
(TC)/PHY TC1: did not complete or timeout within 10ms (status 0xad4003ff)'

Si je fais :

'ERR' in test
Out[122]: True

Le TRUE est valable, car il y a bien le mot ERRROR.

Pour travailler sur des 'mots', je transforme mon string en une liste :

test2=list(test.split(' '))

On poursuit

test2[4]
Out[127]: '*ERROR*'

Tout est logique. Ensuite, je comprends moins bien :

'ERR' in test2
Out[129]: False

Or, '*ERROR*' in test2
Out[130]: True

D'accord, dans une liste, Python cherche une occurrence exacte. Si je 
poursuis mes recherches :

'*ERROR*' or 'ERR' in test2
Out[131]: '*ERROR*'

Il me sort *ERROR* alors que je voulais simplement une sortie booléenne, 
mais peu importe. Je remplace test2[4] avec 'essai' (je supprime 
*ERROR*) et j'ajoute 'ERR' à test2 ;

test2[4]='essai' puis test2.append('ERR')
Test2 est correctement modifiée. Or, si je fais ça :

'*ERROR*' or 'ERR' in test2
Out[137]: '*ERROR*'

Il me retrouve le mot'*ERROR*' que j'ai supprimé et pas 'ERR' que j'ai 
ajouté !

C'est d'autant plus étrange que 'ERRE' est bien trouvé :

'ERR' in test2
Out[138]: True

Qu'est-ce qui peut expliquer ce comportement ?

Je vous remercie pour votre éclairage,

Dominique