以下是我正在执行的代码
https://github.com/federico-terzi/gesture-keyboard/blob/master/learn.py
执行我得到的代码后,
文件" learn.py",第57行,
number = ord(category) -ord('a')
TypeError:ord()需要一个字符,但找到长度为0的字符串
我该如何解决?
答案 0 :(得分:1)
查看您链接的代码,category
来自
category = name.split("_")[0]
和name
来自:
for path, subdirs, files in os.walk(root):
for name in files:
所以我猜你有一个带有前导下划线的文件名。在'_'
上拆分此字符串将为列表的第一个值提供一个空字符串。例如:
s = '_abc_test.txt'
s.split('_')
# returns:
['', 'abc', 'test.txt']
这是一个空字符串,它被传递给ord
。
答案 1 :(得分:0)
项目数据目录包含许多文件,其文件名以_
开头,如_sample_t10_34.txt
。
所以在你的代码中
for path, subdirs, files in os.walk(root):
for name in files:
category = name.split("_")[0] # here category = ''
现在下一行是:
number = ord(category) - ord("a")
这里ord()
采用长度为1的str
类型的参数,当得到名称为{{1的文件时,类别有时会为空字符串''
时会出现此错误是beign read。
您可以执行的操作是跳过以_sample_t10_34.txt
开头的文件,方法是_
检查文件是否以if statement
开头。
_