Il est sûr de dire que je suis un noob en programmation et en python, donc j'ai vraiment besoin d'aide pour gérer un fichier. Mon fichier est un fichier dat avec un entier, une chaîne et un flottant dans chaque ligne, et j'ai besoin de comparer le premier int avec d'autres ints et le float avec une autre valeur, j'ai besoin d'avoir les valeurs sous forme de nombres et non dans le cadre d'une chaîne pour effectuer des opérations mathématiques.Diviser une chaîne par type de données à l'intérieur de chaque ligne de fichier en python
C'est le code que je l'ai fait, mais j'ai regardé partout dans les googles et je ne peux pas trouver une fonction qui fait cela:
readfile = open('file_being_read.dat').read()
def parsa_lista(file_to_read):
converted = []
for line in file_to_read:
#conversion should happen here and write it to the list named "converted"
#my google-fu has failed me..
return converted
print parsa_lista(readfile)
Le fichier ressemble à ceci, mais couvre quelques-uns 600 lignes. De plus, je m'apprête à apprendre tout ce que je fais, et j'étais vraiment incapable de trouver de l'aide, cela pourrait avoir quelque chose à voir avec le manque de connaissances de base dans les types de données ou quelque chose du genre.
C'est la sortie de la liste, comme imprimé avec « % r »:
... 249 LEU 89.81637573242188\n 250 ALA 6.454087734222412\n 251 ILE 42.696006774902344\n 252 VAL 39.9482421875\n 253 LEU 58.06844711303711\n 254 SER 6.285697937011719\n 255 HIS 22.92508316040039\n 256 THR 49.1857795715332\n 257 ASN 15.033650398254395\n 258 SER 12.086835861206055\n 259 VAL 28.70435905456543\n 260 VAL 39.53983688354492\n 261 ASN 18.63718605041504\n 262 PRO 15.275177955627441\n 263 PHE 120.84526062011719\n 264 ILE 26.20943260192871\n 265 TYR 16.6826114654541\n 266 ALA 34.382598876953125\n 267 TYR 179.9381103515625\n 268 ARG 77.62599182128906\n 269 ILE 45.021034240722656\n 270 ARG 133.72328186035156\n ...
vous espérez les gars peuvent me aider, même quelques directives générales sur la façon dont je devrais aller à ce sujet dans les chaînes de fractionnement et de comparer les valeurs seront très appréciées.
Cette explication m'a beaucoup aidé, merci, j'avais vraiment besoin de quelques conseils concernant le traitement des données. – Johanu
J'ai juste quelques questions de plus, la création de datum dans chaque ligne écrase le tuple, et le résultat final est juste le tuple de la dernière ligne. Est-ce une bonne pratique d'ajouter chaque ligne pour créer une liste de tuples, ou de créer, d'une façon ou d'une autre, un tuple comprenant la donnée relative à chaque ligne? Peut-être que je pourrais ajouter à une liste et ensuite créer un tuple sur une liste, mais cela ne semble vraiment pas être une bonne pratique. – Johanu
J'ai ajouté la fonction 'parsa_lista' complétée. Comme je l'ai déjà dit, Ignacio a essentiellement la bonne réponse; Je ne fais que l'expliquer plus en détail. Avoir le résultat final être une liste de tuples semble parfaitement acceptable. Cependant, par curiosité, la première colonne est-elle juste les numéros de ligne? Si c'est le cas, il pourrait probablement être évité en toute sécurité; les listes peuvent être consultées par index. (Par exemple, 'converti [224]' est le 225ème élément de la liste 'convertie'.) – Wesley