ホームページ > バックエンド開発 > Python チュートリアル > `split()` で入力行を分割するときに ValueErrors を処理する方法は?

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

DDD
リリース: 2024-11-29 22:30:13
オリジナル
677 人が閲覧しました

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 を発生させないようにすることができます。

以上が`split()` で入力行を分割するときに ValueErrors を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート