У меня есть специальные символы в списке, и это ломает SikuliX - PullRequest
0 голосов
/ 22 октября 2018

Я пытаюсь получить пути в список, и все работает нормально, пока я не получу специальные символы, такие как ä или ö.В строке они представлены в байтах, например ä - это \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 Ответ

0 голосов
/ 29 октября 2018

Так что я покрыл это.Проблема состояла в том, что функция read_files(path) была вызвана снова позже, и когда path был unicode со специальными символами, отмеченными как байты, все это сломалось.Я изменил свой код так, чтобы эта функция вызывалась только один раз, и тогда я смог работать со специальными символами.

...