【问题标题】:I have special characters in list and it breaks SikuliX我在列表中有特殊字符,它破坏了 SikuliX
【发布时间】:2019-03-26 17:17:17
【问题描述】:

我尝试将路径放入列表中,并且一切正常,直到我得到像 ä 或 ö 这样的特殊字符。在字符串中,它们表示为字节,例如 ä 是 \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

从现在开始,我不知道该去哪里。我已经尝试了几乎所有可以从谷歌找到的东西。与 Python 相比,这更像是一个 SikuliX 问题,因为 Python 代码在 SikuliX 之外也能正常工作。

我使用 Python 2.7 和 SikuliX 1.1.1。

【问题讨论】:

  • 据我所知,核心问题是SikuliX缺乏良好的unicode支持。如果您对工具和 Windows 很灵活,则可以改用 SeeShell plus Python。它具有完整的 Unicode 支持。
  • 谢谢,我正在开发 Ubuntu 16.04,所以看来我只能忍受缺少特殊字符的情况。缺乏 Unicode 支持真的很烦人,因为用 Nordics 制作东西会让生活变得更加困难

标签: python-2.7 sikuli sikuli-x


【解决方案1】:

所以我得到了这个。问题是,read_files(path) 函数稍后被再次调用,当path 是带有标记为字节的特殊字符的 unicode 时,整个事情都坏了。我更改了我的代码,使这个函数只被调用一次,然后我就可以使用特殊字符了。

【讨论】:

    猜你喜欢
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    相关资源
    最近更新 更多