récupérer les donnees d'un fichier ds 1 tableau python - Python - Programmation
Marsh Posté le 31-03-2008 à 10:45:28
wat?
Marsh Posté le 31-03-2008 à 11:25:03
le probleme tout implement comment mettre des donnees stockées dans un fichier dans un tableau(ou matrice)
ces donnees sont partagées en cmd,reponses
Marsh Posté le 31-03-2008 à 11:25:34
file, read, split, csv, ...
Marsh Posté le 01-04-2008 à 13:03:30
voilà, j'ai travaillé dur pour trouver la solution. Tout le monde peut en profiter maintenent.
Voici le code:
print "recopier un fichier dans le format est chaine#chaine"
fs = open("benj.txt","r" )
l=[]
for ligne in file("benj.txt" ):
i=0
c1=""
c2=""
while i<len(ligne) and ligne[i]!="#":
c1=c1+ligne[i]
i=i+1
i=i+1
while i<(len(ligne)):
c2=c2+ligne[i]
i=i+1
l.append( [c1] )
l.append([c2.strip()])
fs.close()
print l
Marsh Posté le 01-04-2008 à 15:20:51
tsic a écrit : voilà, j'ai travaillé dur pour trouver la solution. Tout le monde peut en profiter maintenent.
|
là tu ouvres ton fichier deux fois de suite
Code :
|
C'est censé faire quoi ce truc moche?
Marsh Posté le 02-04-2008 à 10:03:51
la premiere boucle c pour recuperer le premiere chaine la deusieme pour la chaine situant après #
Car mon fichier txt est sous la forme:
chaine1#chaine2
cmdClient#repServeur
Marsh Posté le 02-04-2008 à 10:08:03
tsic a écrit : la premiere boucle c pour recuperer le premiere chaine la deusieme pour la chaine situant après # |
http://docs.python.org/dev/library [...] #str.split
Au final, ton truc ça doit être l'équivalent d'un truc du style:
Code :
|
Python c'est pas du C, t'es pas obligé de tout faire à la main tu sais
Marsh Posté le 02-04-2008 à 10:33:06
Au fait, ton commentaire en première ligne du script c'est pas du français, et ça ne veut rien dire.
Marsh Posté le 02-04-2008 à 11:41:29
ok
merci
Maintenant c'est le code principal,
C'est le code d'un serveur python. Je veux que lorsque le client envoie une cmd le serveur lui repond le contenue de la case suivante à la case de la liste convenable à sa demande.
Le probleme est que à la 2eme classe de ce code la liste n'est pas identifier de telle sorte qu'à chaque fois que le client envoie sa demande le message envoyé est tjs "cmd erronnee"
aidez moi SVP à trouver la solution.
Merci
Code python :
Code :
|
pour la classe tel() je vais la changer comme vous m'avez dit.
mais ça reste pour l'identification de la liste l dans la 2eme classe.
Marsh Posté le 03-04-2008 à 00:48:29
Déjà un rapide cours sur la programmation objet : http://www.commentcamarche.net/poo/poointro.php3
Car vu la façon dont tu fais tes "classes", je pense qu'un rappel s'impose.
Ensuite, normal que tu passe toujours dans l'exception, car ligne 47 tu demande un index sur une liste l qui n'existe pas dans cette classe.
De plus, si ta classe tel ne sert que pour lire ton fichier, tu ferais mieux de la supprimer et de lire le fichier dans le constructeur de ton autre classe. Ce qui résoudrait en plus ton problème avec l, car tu pourrais faire de l un attribut de ta classe.
Ou alors, si tu veux vraiment garder ta classe tel, tu peux mettre ta lecture de fichier dans une méthode statique qui te renvoie ta liste. Et tu appelle cette méthode depuis ton autre classe.
Marsh Posté le 03-04-2008 à 03:25:51
Je suis totalement convaicue par vos idées merci
Mais lorsque j'ai essayé de les appliquer voilà ce que c'est passé:
1)une erreur pour ce code disant que variable globale l est inexistante ou manquante:
Code :
|
2)en executant ce code print l de la 2eme classe m'envoie ceci :
--> <__main__.tel instance at 0x00C3AFA8>
Code :
|
Où est l'erreur?? j'ai pas compris.
MERCI
Marsh Posté le 03-04-2008 à 11:06:01
Pour le 1°, il faut que l soit un attribut de ta classe. Donc tu remplace les lignes 11 à 17 par
Code :
|
Pour le 2°), pourquoi utilises tu call ?
Pour les méthodes statiques, va voir cette page : http://www.rexx.com/~dkuhlman/pyth [...] 0000000000
Marsh Posté le 03-04-2008 à 11:11:02
1) Ya deux "_" à __init__ et __call__
2) Fais une fonction à la place de ta classe "tel" (super nom ), ou alors apprends à te servir d'une classe
3) Pour ton problème 1, comment fonctionnent les attributs d'une classe
4) T'as des variables qui servent à rien, t'as pas besoin de tout ce qui ya dans le module socket non plus
5) Tu risque d'avoir quelques problèmes avec ton while True
6) Ça sert à rien de caster des string à tout va, tu sais quand même ce que tu traites non ? (hein )
Et essaie de faire un effort sur la présentation de ton code, tu t'aideras toi même
Marsh Posté le 31-03-2008 à 09:27:35
Bonjour,
Dans la communication serveur client que je traite je veux faire de telle sorte que lorsque le client envoye une commande le serveur lui envoie la réponse appropriée.
Les commandes et les réponses appropriées seront stockées dans un fichier .txt.
Au démarage du serveur, il doit stocker les données qui se trouvent dans le fichier txt dans un tableau pour faciliter la recherche des commandes en cas où plusieurs clients sont connectés en meme temps et envoyent ces commandes d'une façon disant simultanées.
Comment le faire? (importation des donnees vers le tableau .....)
Quel code dois-je utiliser?
Merci pour votre aide.