我不确定它返回的是什么,但这个文本文件只包含两个字符串。
您的问题可能与空白字符有关(最常见的是回车、换行符/换行符、空格和制表符)。因此,如果您尝试将您的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,您可以下载许多不同的“十六进制编辑器”程序来做同样的事情。