2016-08-04 9 views
0

ファイルの各行を通り、各行を単語に分割して最初の単語をセットにするコードがあります。セットコンディションに条件を入れる方法は?

test = set([ 
    line.rstrip().split()[0].strip() 
    for line in codecs.open(filepath, 'r', 'utf-8') 
    if len(filepath) > 0 
]) 

私の問題は時々ラインが空の文字列と

index out of range error 

が発生した何らかの理由ですることができることです。どうすればエラーが発生した行をスキップして次の行に進むことができるのですか?

答えて

0

あなたはこれが欲しいと思いますか?

test = set([ 
    line.rstrip().split()[0].strip() 
    for line in codecs.open(filepath, 'r', 'utf-8') 
    if len(line) > 0 
]) 

(。あなたはfilepath代わりのlineを持っていた)

あなたはおそらくこれが必要、しかし、空行以来、実際には "\ nを" 次のようになります。

if len(line.rstrip()) > 0 
+0

おかげで@smarx。私は実際にそれをしました。ファイルパスをチェックする必要があるので、ファイルパスのチェックに追加しました。 len(line)> 0、len(filepath)> 0の場合でもエラーはありました。私はそれを試していない:もしlen(line.rstrip())> 0 – kurt

+0

@ user3009947あなたのコードは今動作していますか?そうでない場合は、現在表示されているコードと正確なエラー/スタックトレースを共有してください。 – smarx

+0

ああ、申し訳ありませんが、あなたの編集を見ました。 'len(line.rstrip())> 0'を試してみてください。 – smarx

関連する問題