-1
votes

Extraire des données d'un fichier texte en Python

J'utilise le code ci-dessous dans lequel je lis un fichier texte et j'essaie d'extraire les données requises. Cependant, je reçois une erreur "Chaîne attendue ou objet analtes".

Comme je ne peux pas joindre le fichier, je colle le contenu du fichier texte ici: P>

Excel output ---

text_id
9E40FGTE23555CEasw3NN


2 commentaires

Veuillez reformer votre question à un état présentable. Code séparé du contenu du fichier. Code séparé de la partie de la question. Investissez plus de 3 secondes si vous vous attendez à ce que quelqu'un vous aide depuis plus de 3 secondes.


Avez-vous même l'anglais


3 Réponses :


1
votes

Ouvrez votre fichier et lisez son contenu:

a = re.compile(':20:(.*) :23B:')
z = a.findall(text)


2 commentaires

Nice One @Mike Müller. Si je ne soutiens pas correctement l'expression régulière (. *) Vous permet de choisir tout entre: 20 et: 23b non?


Merci pour cela. J'ai total de 90 fichiers texte avec des données similaires. J'ai besoin d'extraire deux champs, 1.) Tout entre: 20: et: 23b: 2.) Quelque chose entre WCP et WorldCheck-Premium. J'utilise le code ci-dessous, il extrait la première partie mais pas le second. Utilisation de ce code-- Os.chDir ('C: \\ Users \\ Users \\ users \\ Waliar \\ Desktop') S = Ouvrir ("total_data.txt", "r", codage = 'utf-8') y = s.read () A = RECOMPILE (': 20: (. *): 23B:') B = RECOMPILE ('WCP (. *) WorldCHeck-') Z = A.Findall (Y) K = B.FindAll (y) print (k) .............................................. peut vous s'il vous plaît aider? En outre, comment puis-je éviter une erreur quand il n'y a pas de match?



0
votes

fichier.read () a été utilisé, mais la valeur de lecture n'est pas accessible, essayez d'utiliser fichier = fichier.read , Il doit faire le tour

Référez cette image


2 commentaires

Vous voudrez peut-être afficher votre échantillon en tant que code réel au lieu d'une image


Merci pour cela. J'ai total de 90 fichiers texte avec des données similaires. J'ai besoin d'extraire deux champs, 1.) Tout entre: 20: et: 23b: 2.) Quelque chose entre WCP et WorldCheck-Premium. J'utilise le code ci-dessous, il extrait la première partie mais pas le second. Utilisation de ce code-- Os.chDir ('C: \\ Users \\ Users \\ users \\ Waliar \\ Desktop') S = Ouvrir ("total_data.txt", "r", codage = 'utf-8') y = s.read () A = RECOMPILE (': 20: (. *): 23B:') B = RECOMPILE ('WCP (. *) WorldCHeck-') Z = A.Findall (Y) K = B.FindAll (y) print (k) .............................................. peut vous s'il vous plaît aider? En outre, comment puis-je éviter une erreur quand il n'y a pas de match?



0
votes

Vous lisez un fichier mais n'attribuez pas la valeur à une variable en écrivant simplement fichier.read () code>, vous devez affecter la valeur à une variable et fermer le fichier après avoir terminé l'opération comme :

['9E40FGTE23555CEasw3NN']


2 commentaires

Merci pour cela. J'ai total de 90 fichiers texte avec des données similaires. J'ai besoin d'extraire deux champs, 1.) Tout entre: 20: et: 23b: 2.) Quelque chose entre WCP et WorldCheck-Premium. J'utilise le code ci-dessous, il extrait la première partie mais pas le second. Utilisation de ce code-- Os.chDir ('C: \\ Users \\ Users \\ users \\ Waliar \\ Desktop') S = Ouvrir ("total_data.txt", "r", codage = 'utf-8') y = s.read () A = RECOMPILE (': 20: (. *): 23B:') B = RECOMPILE ('WCP (. *) WorldCHeck-') Z = A.Findall (Y) K = B.FindAll (y) print (k) .............................................. peut vous s'il vous plaît aider? En outre, comment puis-je éviter une erreur quand il n'y a pas de match?


Vous devriez éviter de poser des questions dans la section des commentaires et également spammer le même texte sous chaque réponse.