我尝试将路径添加到列表中,并且一切正常,直到得到ä
或ö
之类的特殊字符为止。在字符串中,它们以字节表示,例如ä
是\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。
答案 0 :(得分:0)
因此,我对此有所了解。问题是,read_files(path)
函数稍后再次被调用,并且当path
是带有特殊字符标记为字节的unicode时,整个事情都崩溃了。我以仅调用一次此函数的方式更改了代码,然后可以使用特殊字符。