テキストファイルに保存したjson-stringをPythonに読み込もうとしています。私はそれを空のファイルを与えるとき、JSON-モジュールは私にエラーを与えているので、私は次のようでした:なぜelse節がこのif、elif、else(最初の2つのうちの1つの代わりに)で実行されていますか?
fp = open(filename, 'r')
if fp.readlines() == []
# return an empty list, since the file is empty
elif fp.readlines() != []
# return the converted list
私は今if a == b
とif a != b
の両方を持っているので、私はif
へのそのどれも見つけていないことは非常に驚きましたsが実行され得るが、私が追加した場合、代わりに:
else:
print('something')
それは実際にsomething
を印刷します。なぜこうなった?どのようにして論理的に何か、その否定、そして何か他のものが存在することができますか?あなたが最初の比較が失敗した場合、再びをfp.readlines()
を呼び出して、そのファイルを2回読みしようとしている
最初の 'fp.readlines()'はファイル全体を読み込むため、次の行は読み込みに失敗する(さらに)行を返します。あなたはそれらの間でファイルを巻き戻し、再び 'close'と' open'する必要があります。また、最初の結果を変数に保存し、その時点から使用する必要があります。 – martineau