2016-12-20 17 views
0

pythonでは、設定ファイル(.txtファイル)の読み込みに役立つlinecache.getline()でいくつかの作業をしています。if文のlinecache.getline()の結果を使用できません

animation = linecache.getline("config.txt", 2) 
print (animation) 
if animation == "True": 
    animation = True 
elif animation == "False": 
    animation = False 
else: 
    config_error(2) 

注:(2)、それは私が何かが間違っていますと言って作っただけの機能だCONFIG_ERRORを無視 は、ここに私のコードです。

私の問題は、私が常にelseステートメントに持ち込まれていることです。ご覧のとおり、私はアニメーションを印刷して、それが印刷されていることがわかりました。誰でも何かアドバイスを受けたり、間違っていることを知っていますか?

+0

あなたの 'アニメーション'に改行や改行があると思われます。面白いことがあるかどうかを確認するためにアニメーションの代わりに 'repr(animation)'を表示してください。空白の場合は 'linecache.getline(...)。strip()'を代わりに格納してください。 –

答えて

0

Andrasが言ったように、問題はlinecache.getline()が末尾の改行を含んでいるため、 "True"と "False"の比較が決して一致しません。

linecache.getline()。strip()を使用すると効果があります。

+0

OK。どうもありがとう!しかし、後続の改行が何であるか尋ねることはできますか?私の敵と、それを殺す方法を知りたいだけです。 – JohnyNich

+0

config.txtの各行は文字、数字、スペースなどの "通常の"テキスト文字の束で、 "行末"または "改行"文字が続きます。基本的にEnterキーを押したときに得られるものですキーボードのlinecache.getline()関数は、通常のテキストと改行を最後に返します。 –

+0

[strip()](https://docs.python.org/3/library/stdtypes.html?highlight=strip#str.strip)関数は、起動時に空白と改行を削除するpythonの文字列のbultinメソッドです文字列の終わり。 –

関連する問題