J'essaie de trouver des exemples mais pas de chance. Est-ce que quelqu'un connaît des exemples sur le net? J'aimerais savoir ce qu'il retourne quand il ne peut pas être trouvé et comment spécifier du début à la fin, ce qui, je suppose, sera 0, -1.
vous pouvez utiliser str.index
too:
>>> 'sdfasdf'.index('cc')
Traceback (most recent call last):
File "<pyshell#144>", line 1, in <module>
'sdfasdf'.index('cc')
ValueError: substring not found
>>> 'sdfasdf'.index('df')
1
Je ne sais pas ce que vous cherchez, vous voulez dire find()
?
>>> x = "Hello World"
>>> x.find('World')
6
>>> x.find('Aloha');
-1
De ici :
str.find (sous [ début [ fin]])
Renvoie l'index le plus bas de la chaîne où se trouve la sous-chaîne, de sorte que la sous-chaîne est comprise dans la plage [début à la fin] Les arguments facultatifs début et fin sont interprétés comme dans la notation de tranche. Renvoie -1 si sub n'est pas trouvé. "
Donc, quelques exemples:
>>> str = "abcdefioshgoihgs sijsiojs "
>>> str.find('a')
0
>>> str.find('g')
10
>>> str.find('s',11)
15
>>> str.find('s',15)
15
>>> str.find('s',16)
17
>>> str.find('s',11,14)
-1
Honnêtement, c’est le genre de situation où je viens d’ouvrir Python en ligne de commande et de commencer à déconner:
>>> x = "Dana Larose is playing with find()"
>>> x.find("Dana")
0
>>> x.find("ana")
1
>>> x.find("La")
5
>>> x.find("La", 6)
-1
L'interprète de Python facilite ce type d'expérimentation. (Idem pour d'autres langues avec un interprète similaire)
Si vous souhaitez rechercher la dernière instance d'une chaîne dans un texte, vous pouvez exécuter rfind.
Exemple:
s="Hello"
print s.rfind('l')
sortie: 3
* aucune importation nécessaire
Syntaxe complète:
stringEx.rfind(substr, beg=0, end=len(stringEx))
find( sub[, start[, end]])
Renvoie l'index le plus bas de la chaîne où se trouve la sous-chaîne, de sorte que la sous-chaîne est contenue dans la plage [début à la fin]. Les arguments facultatifs start et end sont interprétés comme dans la notation de tranche. Renvoie -1 si sub n'est pas trouvé.
De les docs .
Essaye ça:
with open(file_dmp_path, 'rb') as file:
fsize = bsize = os.path.getsize(file_dmp_path)
Word_len = len(SEARCH_Word)
while True:
p = file.read(bsize).find(SEARCH_Word)
if p > -1:
pos_dec = file.tell() - (bsize - p)
file.seek(pos_dec + Word_len)
bsize = fsize - file.tell()
if file.tell() < fsize:
seek = file.tell() - Word_len + 1
file.seek(seek)
else:
break
si x est une chaîne et que vous recherchez y une chaîne, il existe deux cas: cas 1: y existe dans x so x.find (y) = l'index (le position) du y dans x . cas 2: y n’existe pas, donc x.find (y) = -1 cette moyenne y n’est pas trouvée dans x.