У меня есть специальные символы в списке, и это ломает SikuliX
Я пытаюсь получить пути в список, и все работает нормально, пока я не получу специальные символы, такие как ä
или же ö
, Например, в строке они представлены в байтах ä
является \xe4
, Если я использую тот же скрипт Python в Терминале, я правильно распечатаю все пути, даже если пути в списке содержат эти байты вместо реальных букв.
Вот мой код, где я извлекаю все имена файлов:
def read_files(path):
"""
Read all files in folder specified by path
:param path: Path to folder which contents will be read
:return: List of all files in folder specified by path
"""
files = []
for f in listdir(path):
if isfile(join(path, f)):
files.append(make_unicode(join(path, f)))
return files
def make_unicode(string):
if type(string) != unicode:
string = string.decode('utf-8')
return string
Я понятия не имею, куда идти дальше. Я перепробовал практически все, что мог найти в Google. Это скорее проблема SikuliX, чем Python, потому что код Python отлично работает вне SikuliX.
Я использую Python 2.7 и SikuliX 1.1.1.
1 ответ
Так что я получил это покрыто. Проблема была в том, что read_files(path)
функция была вызвана снова позже, и когда path
был Unicode со специальными символами, помеченными как байты, все это сломалось. Я изменил свой код так, чтобы эта функция вызывалась только один раз, и тогда я смог работать со специальными символами.