63 lines
2.5 KiB
Python
Executable file
63 lines
2.5 KiB
Python
Executable file
#!/usr/bin/env python
|
|
import re
|
|
import argparse
|
|
|
|
def extract_content(file_path):
|
|
with open(file_path, 'r', encoding='utf-8') as file:
|
|
content = file.read()
|
|
|
|
# Utiliser une expression régulière pour trouver le contenu entre les balises <think> et </think>
|
|
#think_pattern = r'<think>(.*?)</think>'
|
|
think_pattern = r'Thinking\.\.\.(.*?)\.\.\.done thinking\.'
|
|
think_matches = re.findall(think_pattern, content, re.DOTALL)
|
|
|
|
# Nettoyer les résultats pour enlever les espaces superflus
|
|
extracted_think = [match.strip() for match in think_matches]
|
|
|
|
# Utiliser une expression régulière pour trouver le contenu YAML entre les balises ```yaml et ```
|
|
yaml_pattern = r'```yaml(.*?)```'
|
|
yaml_matches = re.findall(yaml_pattern, content, re.DOTALL)
|
|
|
|
# Nettoyer les résultats pour enlever les espaces superflus
|
|
extracted_yaml = [match.strip() for match in yaml_matches]
|
|
|
|
# Supprimer le contenu YAML et <think> du texte complet
|
|
markdown_content = re.sub(yaml_pattern, '', content, flags=re.DOTALL)
|
|
markdown_content = re.sub(think_pattern, '', markdown_content, flags=re.DOTALL)
|
|
|
|
return extracted_think, extracted_yaml, markdown_content.strip()
|
|
|
|
def main():
|
|
# Configuration de l'analyseur d'arguments
|
|
parser = argparse.ArgumentParser(description='Extraire le contenu d\'un fichier texte.')
|
|
parser.add_argument('file_path', type=str, help='Chemin vers le fichier texte à analyser.')
|
|
group = parser.add_mutually_exclusive_group(required=True)
|
|
group.add_argument('--think', action='store_true', help='Afficher le contenu de la balise <think>.')
|
|
group.add_argument('--explanation', action='store_true', help='Afficher le reste du Markdown sans le code YAML et <think>.')
|
|
group.add_argument('--yaml', action='store_true', help='Afficher le contenu YAML.')
|
|
|
|
# Analyse des arguments
|
|
args = parser.parse_args()
|
|
|
|
# Extraction du contenu
|
|
extracted_think, extracted_yaml, markdown_content = extract_content(args.file_path)
|
|
|
|
if args.think:
|
|
# Affichage du contenu de la balise <think>
|
|
if extracted_think:
|
|
print(extracted_think[0])
|
|
else:
|
|
print("Aucun contenu trouvé entre les balises <think> et </think>.")
|
|
elif args.yaml:
|
|
# Affichage du contenu YAML
|
|
if extracted_yaml:
|
|
print(extracted_yaml[0])
|
|
else:
|
|
print("Aucun contenu YAML trouvé.")
|
|
elif args.explanation:
|
|
# Affichage du reste du Markdown sans le code YAML et <think>
|
|
print(markdown_content)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|