Chat en python

Chat en python - Python - Programmation

Marsh Posté le 08-12-2012 à 11:32:21    

Bonjour à tous cela fait quelque temps que je me casse la tête sur un programme. En effet il fonctionne, mais pas comme je voudrais, je voudrais qu'il affiche le texte contenu dans un fichier .txt mais en temps réel ce qui n'est hélas pas le cas on doit obligatoirement appuyaient sur "entrée" ce qui n'est pas pratique  
 
voici mon une partie de mon code:
 
 
import os  
user=raw_input("pseudo?: " )
print "bienvenu sur le Chat",user
print "pour quitter tapez: EXIT"
while not user=="admin":
    obFichier = open('chat.txt','a')
    fichier=open("chat.txt",'r')
    chat = fichier.read()
    print chat
    texte=raw_input("Texte: " )  
    fichier=open("chat.txt","a" )
    fichier.write(user)
    fichier.write(": " )
    fichier.write(texte)
    fichier.write(".\n" )
    print chat
    if texte=='EXIT':
        os.system('pause')
        break  
 
j'aimerais que le programme affiche en temps réel ses changements  
 
merci d'avance

Reply

Marsh Posté le 08-12-2012 à 11:32:21   

Reply

Marsh Posté le 08-12-2012 à 12:31:50    

http://code.activestate.com/recipes/134892/

 

(accessoirement, c'est quoi cette idée bizarre d'ouvrir 3 fois le même fichier et de ne jamais le fermer?)


Message édité par masklinn le 08-12-2012 à 12:32:38

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-12-2012 à 14:20:06    

Merci beaucoup mais je ne comprends pas grand-chose à ces lignes de code (je suis débutant) pourrait tu m'expliquais ?
en ce qui concerne les fichiers il me semble avoir lu que ce n’était pas nécessaire de les fermes

Reply

Marsh Posté le 08-12-2012 à 14:25:53    

flolam62 a écrit :

Merci beaucoup mais je ne comprends pas grand-chose à ces lignes de code (je suis débutant) pourrait tu m'expliquais ?


Par défaut l'entrée/sortie de Python (genre input() ou print()) est line-buffered, donc elle n'est "activée" qu'au moment où une ligne est terminée (en appuyant sur la touche "entrée", donc).
 
Il y a des paramètres pour éviter le buffering de la sortie, mais pas de l'entrée, donc il faut utiliser des hooks spécifiques à la plateforme. Ce que le code lié fait, il crée une fonction getch() que tu peux appeler pour obtenir un caractère sais par l'utilisateur sans attendre la fin de ligne.
 

flolam62 a écrit :

en ce qui concerne les fichiers il me semble avoir lu que ce n’était pas nécessaire de les fermes


C'est incorrect dans le cas général.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-12-2012 à 14:55:53    

merci ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed