何が返されているのかわかりませんが、このテキスト ファイルには 2 つの文字列しか含まれていません。
問題は空白文字に関連している可能性があります (最も一般的なのは、キャリッジ リターン、改行/改行、スペース、およびタブです)。そのため、あなたstring1
を ' expectedvalue
' と比較しようとして失敗した場合は、改行自体が原因である可能性があります。
これを試してみてください: 各文字列の長さを出力してから、各文字列の実際の各バイトを出力して、比較が失敗する理由を確認してください。
例えば:
>>> print len(string1), len(expected)
4 3
>>> for got_character, expected_character in zip(string1, expected):
... print 'got "{}" ({}), but expected "{}" ({})'.format(got_character, ord(got_character), expected_character, ord(expected_character))
...
got " " (32), but expected "f" (102)
got "f" (102), but expected "o" (111)
got "o" (111), but expected "o" (111)
それが問題である場合はstrip
、先頭と末尾の空白を削除してから比較を実行する必要があります。
>>> string1 = string1.strip()
>>> string1 == expected
True
Unix ライクなシステムを使用している場合は、ファイルのより詳細な表現をダンプするために、xxd
またはバイナリを使用できる可能性があります。od
Windows を使用している場合は、さまざまな「16 進エディター」プログラムをダウンロードして、同じことを行うことができます。