ValueError in Line Fractionnement pour les paires question-réponse
Lors de la tentative de diviser une ligne d'entrée en plusieurs variables à l'aide de la fonction split() de Python , vous pouvez rencontrer une exception « ValueError », indiquant une inadéquation entre le nombre attendu de valeurs et les valeurs réellement disponibles. Ce problème peut survenir pour diverses raisons, mais deux scénarios courants impliquent :
1. Valeurs insuffisantes :
Problème : Si une ligne du fichier d'entrée ne contient pas de caractère ':', cela entraîne le renvoi par split() d'un seul élément au lieu de deux valeurs attendues.
Solution : Vérifiez si la dernière ligne du fichier d'entrée est vide (contenant uniquement des espaces) et gérez ces cas en conséquence. Assurez-vous que chaque ligne contient un caractère ':' pour que la fonction split() fonctionne correctement.
2. Valeurs excessives :
Problème : À l'inverse, s'il y a plus de deux caractères ':' sur une ligne, split() renverra plus de valeurs que prévu.
Solution : Effectuez une vérification préliminaire pour confirmer que chaque ligne contient exactement un caractère ':' avant de tenter de la diviser. Les lignes avec pas ou plus d'un ':' doivent être filtrées ou traitées différemment.
Exemple :
Considérez le code suivant :
with open('qanda.txt', 'r') as qanda_file: for line in qanda_file: if ':' in line: question, answer = line.strip().split(':') # Process question and answer
Ce code vérifie la présence de ':' dans chaque ligne et divise uniquement les lignes avec un seul caractère ':', empêchant ainsi l'apparition d'exceptions 'ValueError' dues à des valeurs manquantes ou excessives.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!