Bonjour

Quelqu'un peut il m'expliquer pourquoi VSCode affiche des petites puces de couleur bleue dans l'affichage des résultats dans le terminal?

upload/1752644280-40948-python-poinys-bleus.jpg
Bonjour,

L'intégration de l'interpréteur de commandes permet notamment d'obtenir les codes de sortie des commandes exécutées dans le terminal. Grâce à ces informations, des décorations sont ajoutées à gauche de la ligne pour indiquer si la commande a réussi ou échoué. Ces décorations apparaissent également dans la barre de défilement du terminal.
https://code.visualstudio.com/docs/terminal/shell-integration#_command-decorations-and-the-overview-ruler

Cette fonctionnalité peut être désactivée dans le fichier settings.json :
// When shell integration is enabled, adds a decoration for each command.
//  - both: Show decorations in the gutter (left) and overview ruler (right)
//  - gutter: Show gutter decorations to the left of the terminal
//  - overviewRuler: Show overview ruler decorations to the right of the terminal
//  - never: Do not show decorations
"terminal.integrated.shellIntegration.decorationsEnabled": "both",
Modérateur
Salut Lionel,

Pour répondre à ta question, je n'ai aucune idée. En outre, je remarque que tu utilises le module historique os.path pour les chemins. Depuis python 3.4, pathlib¹ est plus intéressant et plus simple pour gérer les chemins.

Pour trouver le chemin absolu du dossier courant, voici un exemple :

from pathlib import Path


base_dir = Path(__file__).parent
print(base_dir)


À partir de base_dir, tu peux par exemple très facilement déclarer un chemin. Attention, tu es dans un objet Path et non un str.


articles_folder = base_dir / 'articles'
summary_article = articles_folder / 'summary.txt'
if summary_article.exists():
    with open(str(summary_article), encoding='utf-8') as f:
       data = f.read()


Tu remarqueras que la syntaxe est bizarre. Les noms de variable ou les chaînes de caractères sont séparés par des slashs. Et oui, tu es dans un objet Path. Si tu fais de l'objet un peu avancé en Python, tu comprendras comment réaliser ce genre de syntaxe sans que Python te renvoie une exception.

Au lieu d'importer le module glob qui lui aussi est historique, tu peux aussi te servir de pathlib. Attention, tu récupéreras un générateur

exemple :

articles = [r for r in articles_folder.glob('*.txt') if not r.name.startswith('summary')]

De mémoire, tu peux aussi utiliser une Regex au lieu d'une str dans la valeur de glob. (re.compile...)

exemple complet du script :

from pathlib import Path


base_dir = Path(__file__).parent
articles_folder = base_dir / 'articles'
summary_article = articles_folder / 'summary.txt'


if summary_article.exists():
    with open(str(summary_article), encoding='utf-8') as f:
       data = f.read()


articles = [r for r in articles_folder.glob('*.txt') if not r.name.startswith('summary')]
print(articles)


arborescence de l'exemple :
upload/1752672690-11496-capturedancrande2025-07-1615-.png

Je te laisse le soin de parcourir la doc¹ de ce module. Il y a plein de choses intéressantes. Je n'ai qu'éfleuré le sujet.

____
¹ en ligne de commande :
- python
- help()
- pathlib
- la doc dans ton terminal
Modifié par Niuxe (16 Jul 2025 - 15:54)