У меня есть файл конфигурации с парой ключ-значение, как показано ниже:
PARAM1=FOO
PARAM2=BAR
Мой Python скрипт загрузки этих значений сравнивает их со строкой. Странно, это сравнение не удается, поэтому я подозреваю, что проблема кодирования / декодирования со значением, загруженным из текстового файла. Как безопасно выполнить это сравнение?
Код
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# test.py
import os
import io
pattern = 'PARAM1'
file_list = io.open('list.txt','r',encoding='utf8')
for line in file_list.readlines():
if pattern in line:
value = line.split('=')[1]
file_list.close()
if value == 'FOO':
print("[DEBUG] Valid")
else:
print("[DEBUG] Invalid")
print("[DEBUG] Value: %s" %(value))
assert value == 'FOO', "%s is not equal to 'FOO'" %(value)
Выход
[DEBUG] Invalid
[DEBUG] Value: FOO
Traceback (most recent call last):
File "test.py", line XX, in <module>
assert value == 'FOO', "%s is not equal to 'FOO'" %(value)
AssertionError: FOO
is not equal to 'FOO'