# Insérer automatiquement des données dans un fichier reStructuredText

## Objectif

Supposons que vous deviez présenter 3 produits, *Dianthus*, *Geum* et *Prunus*, chacun déclinés dans trois versions *1.0*, *1.5* et *2.3*.

Plutôt que d’écrire les données à la main dans le fichier de contenu, vous pouvez les insérer automatiquement grâce à Jinja et Python.

1. Créez le fichier `modele.rst` suivant :

    ```
    Produits et versions
    ====================
    {% for prod in product %}
    {{ prod | capitalize }}
    {% for c in prod %}-{% endfor %}
       {% for ver in version %}
    - {{ ver }}
       {% endfor %}
    {% endfor %}
    ```

2. Créez le script Python `populate.py` suivant :

    ```
    #!/usr/bin/python
    # coding: utf-8
    import jinja2
    
    env = jinja2.Environment(loader=jinja2.FileSystemLoader('./'), lstrip_blocks=True)
    
    template = env.get_template('modele.rst')
    
    data = {
        'product': ['dianthus', 'geum', 'prunus'],
        'version': ['1.0', '1.5', '2.3']
        }
    print(template.render(data))
    ```

3. Rendez le script exécutable, puis exécutez-le :

    ```console
    $ chmod +x populate.py
    $ ./populate.py
    ```

    Le contenu suivant s’affiche :

    ```txt
    Produits et versions
    ====================

    Dianthus
    --------

    - 1.0

    - 1.5

    - 2.3

    Geum
    ----

    - 1.0

    - 1.5

    - 2.3

    Prunus
    ------

    - 1.0

    - 1.5

    - 2.3
    ```

Vous minimisez ainsi le risque d’erreurs et l’effort de mise à jour.

**Voir aussi**
- [Insérer automatiquement des données dans un fichier DITA XML](https://docs.redaction-technique.org/fr/tutorials/auto-insert-data-dita-xml/)
- [Insérer automatiquement des données SQL dans un fichier reStructuredText](https://docs.redaction-technique.org/fr/tutorials/auto-insert-sql-data-restructuredtext/)

## Articles connexes

- [Créer des documents différents à partir des mêmes sources via Jinja (méthode objet)](https://docs.redaction-technique.org/fr/tutorials/conditional-text-jinja-object-method/)
- [Expressions régulières en Python](https://docs.redaction-technique.org/fr/tutorials/python-regular-expressions/)
- [Le Raspberry Pi 3 en tant que plateforme de documentation](https://docs.redaction-technique.org/fr/tutorials/raspberry-pi-documentation-platform/)
- [Insérer automatiquement des données dans un fichier DITA XML](https://docs.redaction-technique.org/fr/tutorials/auto-insert-data-dita-xml/)
- [Insérer automatiquement des données SQL dans un fichier reStructuredText](https://docs.redaction-technique.org/fr/tutorials/auto-insert-sql-data-restructuredtext/)

---

Source: https://docs.redaction-technique.org/fr/tutorials/auto-insert-data-restructuredtext/
