Я не уверен, что он возвращается, но этот текстовый файл содержит только две строки.
Ваша проблема, скорее всего, связана с пробельными символами (наиболее часто встречающимися являются возврат каретки, строка/строка, пробел и табуляция). Поэтому, если вы попытались сравнить свои 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
, позволяющий сбрасывать более подробное представление файла.Если вы используете окна, вы можете загрузить множество разных программ «hex editor», чтобы сделать то же самое.
Можете ли вы показать нам немного файла? – aIKid
Являются ли строки в файле всегда в одном месте? то есть. Они всегда на линии 3 и 8? –
Что-то еще следует отметить: ваш файл не содержит строк, он содержит текст. Это только один раз, когда python анализирует файл, текст становится строками. Я предполагаю, что вы хотите сказать, «есть два непостоянных набора символов» (иначе говоря). То, что было бы действительно полезно, является примером. –