Bonjour,
Je suis encore débutant sur python, je voudrai faire une fonction qui me copie une chaine de caracteres que je connais mais qui vient apres par exemple 'code-' et se termine lorsqu'elle rencontre des guillemets.
Merci
Bonjour,
Je suis encore débutant sur python, je voudrai faire une fonction qui me copie une chaine de caracteres que je connais mais qui vient apres par exemple 'code-' et se termine lorsqu'elle rencontre des guillemets.
Merci
Bonsoir.
Pour avoir une réponse rapide, il faut au moins deux ingrédients qui ne sont pas présents ici.
- Une question claire.
- Un bout de code indiquant le problème, ou donnant un début de recherche.
Cordialement.
Merci pour ta réponse.
Ce que je souhaite faire, c'est de sélectionner une sous chaine de caractères d'une chaine de caractères que je récupère d'un fichier que j'ouvre. Cette sous chaine de caractere commencer par des certains caractères et se termine aussi lors qu'elle rencontre certain caractere.
Ce que j'ai fais pour le moment c'est ouvrir le fichier, je mets le contenu dans une liste avec readlines, pour la suite je bug je sais pas comment faire ni les fonctions des chaines de caractères avec lesquelles je peux bosser.
Désolé si c'est pas clair, j'ai essayé de mon mieux pour vous faire voir l'algorithme.
Ce qui serait intéressant est surtout de voir un début de code, vous dites utiliser readlines (ce qui est un bon début), pourquoi ne pas le présenter?
Vous avez la méthode startswith et endswith pour poser vos conditions quand au 1er et dernier caractère (il y a d'autres solutions).
Bon voila ma fonction, ça va paraitre con c'est tout ce que j'ai fait pour le moment :
def filtre(source,destination):
fs = open(source, 'r')
fd = open(destination, 'w')
while 1:
txt = fs.readline()fs.close()
if txt =='':
breakif txt[0].startswith(('<label id="')) :
# là j'aimerai copier les caractères qui viennent après et s'arrêté une fois les caractères suivants "> seront trouvé
fd.close()
return
Bonjour,
penses à utiliser la balise code symbolisé par #, et aussi à donner un fichier exemple montrant ce que tu veux ananlyser.
Bonjour,
Pour tester la valeur d'un caractère en python tu peux utiliser '==' (comme tu l'as déjà fait pour tester le caractère vide).
Comme un string se comporte comme une liste (en partie) tu peux aussi le parcourir avec une boucle, lui ajouter des caractères, ...
Par exemple, pour récupérer tous les "a" d'un string
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 string_test = 'blala' string_result = '' for letter in string_test: if letter == 'a': string_result += letter
Bonjour
attention : avec txt qui est une chaine de caractères (txt = fs.readline()), le test suivant :
est toujours faux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part if txt[0].startswith(('<label id="'))
txt[0] est une chaine de 1 caractère (le premier de la chaine txt).
Aucune chaine d'un seul caractère ne commence par quelque chaine à plusieurs caractères que ce soit. C'est txt qu'il faut tester.
Sinon, je pense que passer un peu de temps à voir les chaines et les fonctions/méthodes associées t'aiderait.
Regarde notamment :
- find (pour trouver l'indice du caractère '>')
- split (qui te découpe une chaine selon un délimiteur (bien choisi))
De façon plus macroscopique, les chaines traitées sont apparemment issues d'un fichier avec un format "à balises". Il y a peut-être (sans doute) un module qui te permet de rechercher les éléments que tu veux, et leur contenu. Mais ce sera, peut-être, dans un deuxième temps, si tu débutes en Python
Bonne continuation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager