「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > `split()` で入力行を分割するときに ValueError を処理する方法は?

`split()` で入力行を分割するときに ValueError を処理する方法は?

2024 年 11 月 24 日に公開
ブラウズ:777

How to Handle ValueErrors When Splitting Input Lines with `split()`?

入力行の分割: ValueErrors の処理

split() 関数を使用して入力行を分割する場合、入力行に期待される区切り文字。行にコロン (:) などの指定された区切り文字がない場合、split() 関数は単一の値または例外を返します。

ValueErrors について

  • ValueError: unpack には複数の値が必要です: Split() 関数が値を 1 つだけ返す場合に発生します。入力行に区切り文字がありません。
  • ValueError: 展開するには値が多すぎます (2 が予想されます): 逆に、このエラーは、split() 関数が予想よりも多くの値を返したことを示します。多くの場合、入力行に複数の区切り文字があることが原因で発生します。

ValueErrors の原因

特定のコードでは、ValueErrors はコードの最後の行から発生する可能性があります。入力ファイルには空のスペースのみが含まれる可能性があります。これらの空のスペースに対して string.strip() を実行すると、空の文字列が返されます。コロンで分割すると空の文字列が得られます。これにより、要素が 1 つだけ残り、「解凍するには複数の値が必要です」エラーが発生します。

解決策

これらの ValueErrors を防ぐために、チェックを実装できます。各行に期待どおりの区切り文字が含まれていることを確認します。コードの修正版は次のとおりです:

questions_list = []
answers_list = []

with open('qanda.txt', 'r') as questions_file:
    for line in questions_file:
        line = line.strip()
        if ':' in line:
            questions, answers = line.split(':')
            questions_list.append(questions)
            answers_list.append(answers)

コロン区切り文字をチェックする if ステートメントを追加することで、コロン区切り文字が欠けている行を除外し、split() 関数が ValueErrors を発生させないようにすることができます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3