我在列表中有特殊字符,它破坏了SikuliX

时间:2018-10-22 15:12:32

标签: python-2.7 sikuli sikuli-x

我尝试将路径添加到列表中,并且一切正常,直到得到äö之类的特殊字符为止。在字符串中,它们以字节表示,例如ä\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找到的东西。这个问题比Python多了一个SikuliX问题,因为Python代码在SikuliX外部可以正常工作。

我使用Python 2.7和SikuliX 1.1.1。

1 个答案:

答案 0 :(得分:0)

因此,我对此有所了解。问题是,read_files(path)函数稍后再次被调用,并且当path是带有特殊字符标记为字节的unicode时,整个事情都崩溃了。我以仅调用一次此函数的方式更改了代码,然后可以使用特殊字符。