IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Une commande dvips avec os.system


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Par défaut Une commande dvips avec os.system
    Bonjour.

    Je suis en train de tester une commande très simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system('dir > results.txt')
    Elle fonctionne très bien. Maintenant, je souhaiterais insérer de la même manière dans un fichier texte le résultat d'un dvips :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    os.system("dvips -o fichier.ps fichier.dvi > logdvi.txt")
    Là, les lignes s'affichent bien dans le terminal, mais ne s'enregistre pas dans le fichier texte (qui est certes créé, mais reste vide).
    Quelqu'un a-t-il une explication ?

    Merci d'avance.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 710
    Par défaut
    Salut,

    Citation Envoyé par evariste_G Voir le message
    Là, les lignes s'affichent bien dans le terminal, mais ne s'enregistre pas dans le fichier texte (qui est certes créé, mais reste vide).
    Quelqu'un a-t-il une explication ?
    Déjà, il faudrait savoir si la commande "dvips -o fichier.ps fichier.dvi > logdvi.txt" lancée "normalement" depuis un "terminal" fonctionne comme attendu ou si c'est l'exécuter via os.system qui contribue au défaut.

    Mon expérience est que ">" redirige la sortie stdout mais si le programme écrit sur stderr... on obtient ce genre de résultat (d'où l'importance de lancer la commande sans Python pour savoir où çà va).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Par défaut
    En ligne de commande, dans le terminal, la commande ne fonctionne pas. Cela affiche quelque chose de la forme :

    This is dvips(k) 2020.1 Copyright 2020 Radical Eye Software (www.radicaleye.com)
    ' TeX output 2020.04.29:1654' -> 091575438_ILTNSI.ps
    <C:/Users/Stephane/AppData/Local/Programs/MiKTeX 2.9/dvips/base/tex.pro>
    <C:/Users/Stephane/AppData/Local/Programs/MiKTeX 2.9/dvips/pstricks/pstricks.pro>
    <C:/Users/Stephane/AppData/Local/Programs/MiKTeX 2.9/dvips/pstricks/pst-algparser.pro>
    ...
    mais le fichier texte est vide.
    Ce n'est pas la commande os.system() qui est en cause.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 710
    Par défaut
    Et un présumé coupable éliminé de la liste des suspects.

    Le problème devient: "comment rediriger la sortie vers stderr vers un fichier lorsqu'on est sous le terminal (cmd.exe) de Windows".

    On peut en extraire quelques mots clefs pour chercher sur Internet "windows redirect stderr" et trouver cet article de Microsoft (en français) qui explique tout.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mai 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2020
    Messages : 3
    Par défaut
    Ah oui, c'est tout bête en fait... C'était cette information (du STDERR et STDOUT) que je n'avais pas.

    Merci beaucoup !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lancer une commande système avec des "
    Par Caro-Line dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 15h17
  2. lancer une commande unix avec perl
    Par dm_manu dans le forum Langage
    Réponses: 1
    Dernier message: 02/08/2006, 19h41
  3. lancer une commande système avec jbuilder
    Par xs_nady dans le forum JBuilder
    Réponses: 1
    Dernier message: 28/03/2006, 04h54
  4. Lancer une commande système avec VC++
    Par xs_nady dans le forum MFC
    Réponses: 1
    Dernier message: 17/03/2006, 14h03
  5. [API][Système] Executer une commande dos avec arguments
    Par oOoOuuhmAn dans le forum Général Java
    Réponses: 4
    Dernier message: 17/03/2006, 12h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo