pb ecriture dans fichier ou d'affichage simple (print) sur ecran avec IDE Eric ... ?
Le
DelSpam
Bonjour à tous,
J'ai quelques petits soucis pour
1) Ecrire dans un fichier avec l'ide Eric
2) Avoir un affichage correcte d'un 'print' avec l'ide Eric
Aucun soucis avec les mêmes programmes en utilisant l'interpreteur
Python
version utilisés (Debian Etch) :
Interpreteur: Python 2.4.4 (#2, Apr 15 2008, 23:43:20)
IDE Eric - 3.9.1: eric 3.9.1-1
1er exemple:
# Ici le fichier est bien créé avec Eric mais il reste vide
filename = "fichier.txt"
fichier = open(filename,"w")
txt = "tarte a la creme II, le retour"
fichier.write(txt + '')
fichier.close
2eme exemple :
t2 = ['a','b','c','d','e','f','g','h','i','j','k','l']
i = 0
while ( i < len(t2) ):
print t2[i], # pas d'affichage si virgule avec Eric,
i = i + 1 # sans virgule l'affichage est ok (ligne par
# ligne)
- J'ai essayé de déclarer l'environnement Python dans Eric (
/usr/bin/python ou d'utiliser les paramètres par défaut
sans succès
- la redirection des sorties standards (stdout, stderr , Cf. parametres
debug) dans Eric peut être activée ou désactivée, ça ne change rien
Eric est le coupable idéal (mais j'ai les mêmes problemes avec IDLE :o)
Je continue à chercher mais peut être l'erreur est dans mon code
Par avance merci, pour toute info
J'ai quelques petits soucis pour
1) Ecrire dans un fichier avec l'ide Eric
2) Avoir un affichage correcte d'un 'print' avec l'ide Eric
Aucun soucis avec les mêmes programmes en utilisant l'interpreteur
Python
version utilisés (Debian Etch) :
Interpreteur: Python 2.4.4 (#2, Apr 15 2008, 23:43:20)
IDE Eric - 3.9.1: eric 3.9.1-1
1er exemple:
# Ici le fichier est bien créé avec Eric mais il reste vide
filename = "fichier.txt"
fichier = open(filename,"w")
txt = "tarte a la creme II, le retour"
fichier.write(txt + '')
fichier.close
2eme exemple :
t2 = ['a','b','c','d','e','f','g','h','i','j','k','l']
i = 0
while ( i < len(t2) ):
print t2[i], # pas d'affichage si virgule avec Eric,
i = i + 1 # sans virgule l'affichage est ok (ligne par
# ligne)
- J'ai essayé de déclarer l'environnement Python dans Eric (
/usr/bin/python ou d'utiliser les paramètres par défaut
sans succès
- la redirection des sorties standards (stdout, stderr , Cf. parametres
debug) dans Eric peut être activée ou désactivée, ça ne change rien
Eric est le coupable idéal (mais j'ai les mêmes problemes avec IDLE :o)
Je continue à chercher mais peut être l'erreur est dans mon code
Par avance merci, pour toute info

Poser une question


je n'ai pas Eric d'installé, mais il me semble que tu commets une erreur avec
"fichier.close" qui devrait être "fichier.close()", close étant une méthode et
non un attribut d'un objet file.
Quant au second exemple, il me semble plus pertinent de l'écrire ainsi :
t2 = ['a','b','c','d','e','f','g','h','i','j','k','l']
for elem in t2:
print elem,
mais je ne vois pas pourquoi ça ne fonctionnerait pas sous Eric.
En effet pour 1) "ecriture dans un fichier", plus de probleme avec les
() ( enfin avec la vraie methode close() ;) . Pardon Eric :$
Pour 2) "print" , même pb avec ta proposition
t2 = ['a','b','c','d','e','f','g','h','i','j','k','l']
for elem in t2:
print elem, # pas de pb avec l'interpreteur
# pas d'affichage du print avec Eric
# sauf si on enleve la virgule (mais
dans ce cas affichage en colone)
print # avec ajout de cette ligne, le ' print
elem, ' affiche bien t2 sur une ligne
bizarre, bizarre, j'ai un affichage correct (sans ajouter la ligne print
ou print "" à la fin du programme) avec le debogueur d'Eric ... à
suivre ...
----
kib2 a écrit :
[snip]
Les entrées/sorties sont en général bufferisées par le système, ce qui se
traduit souvent par un affichage effectif uniquement lorsque la ligne est
complète. Le buffer est en général aussi "flushé" automatiquement lorsque
le programme s'arrête, mais dans un IDE, l'interpréteur peut ne pas sortir
lorsque le programme est fini.
Démonstration:
-----------------------------------
import time
for i in range(10):
print i,
time.sleep(1)
-----------------------------------
Chez moi, le script lancé avec l'interpréteur Python n'affiche rien
pendant 10 secondes, puis affiche toute la ligne d'un coup.
Si c'est vraiment important, ajouter un sys.stdout.flush() après chaque
print devrait résoudre le problème (avec le 'import sys' qui va bien, bien
sûr).
HTH
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
import sys
sys.stdout.write ('merci :) n')