-3
votes

"Comment lire des chaînes et des chiffres du même fichier avec une boucle tandis que dans Python 3?"

J'ai du mal à lire des chaînes et des chiffres d'un fichier avec une boucle de temps. Il y a des noms imaginaires avec leur âge et leur nombre de frères et sœurs dans un fichier texte. Je veux lire les noms, l'âge et le nombre de frères et sœurs dans le fichier texte avec une boucle tandis que. Si vous avez besoin de plus d'informations pour résoudre le problème, faites-le-moi savoir. L'aide est très appréciée xxx pré>

Ce code ci-dessus est le code qui me permet d'obtenir les informations et de le stocker dans un fichier texte. Le code ci-dessous est que je travaille sur afin que je puisse lire dans le fichier. P> xxx pré>

C'est ce que mon fichier de données ressemble. Ci-dessous P>

joe
56
2
john
27
5
james
14
3


11 commentaires

Pourriez-vous publier un extrait de code qui répond à l'exemple minimal, complet et vérifiable Stackoverflow.com/help/mcve


Lisez la ligne de fichier par ligne. Pour chaque ligne divisée sur un délimiteur utile, obtenez une liste de chaînes. Convertissez ceux-ci en chiffres au besoin. Comme pour toute tâche de programmation, commencez avec les petites pièces que vous connaissez et vous accumulez de là. À ce stade, nous ne savons pas combien de python vous connaissez ou non.


Avoir des problèmes de quelle manière? Montrez-nous votre code, expliquez votre résultat souhaité et comment le résultat réel diffère de vos attentes.


Comment puis-je pouvoir poster mon code?


@Patrickartner Jetez un coup d'oeil maintenant


À quoi ressemble votre fichier de données?


@Jaba jetez un coup d'oeil maintenant


Vous écrivez une ligne avec un nom. Ensuite, une ligne avec l'âge, puis la ligne avec la quantité de frères et sœurs. Vous ne lisez qu'une chose du fichier - encore et encore dans la même variable que vous essayez ensuite de le convertir en int ... La première chose à lire est un nom - pourquoi cela? Joe n'est pas un nombre ...


@Patrickartner im un peu confus sur ce que vous essayez de me dire.


@LukeBrady j'ai posté le code Snippet


@mypetlion j'ai posté le code


3 Réponses :


0
votes

Vous écrivez chaque valeur sur une ligne, puis lorsque vous le lisez, vous ne lisez qu'une ligne. Lisez chaque ligne lorsque vous les écrivez

with open('practice.txt', 'r') as infile:

    while True:       
        name = infile.readline()
        if not name:
            break
        age = int(infile.readline())
        siblings = int(infile.readline())


1 commentaires

J'apprécie cela! C'est juste que je n'ai pas appris ce type de formatage en classe et mon professeur s'attend à ce que je puisse utiliser le formatage ci-dessus pour essayer de résoudre ce problème.



0
votes

C'est presque raison, mais quelques détails:

  1. Ouvrir Infile pas comme readline () , mais aussi "", sinon, il saura la première ligne.
  2. Ne testez pas Choix pour "N" et pour "N", faites simplement quelque chose comme si Choice.lower () == "N": . / li>
  3. Lisez également les frères et sœurs ou faites quelque chose à les sauter, sinon cela confondra le code, comme "2" sera lu comme la ligne "John" sera lu comme âge, mais Int ("John") va cracher une erreur

0 commentaires

0
votes

Étant donné que chaque personne prend 3 lignes dans le fichier, vous devez lire 3 lignes à chaque fois par la boucle.

Vous devez également utiliser rstrip () pour supprimer les nouvelles lignes à la fin de chaque ligne. xxx


0 commentaires