[我正在制作一个需要打开txt文件并将其转换为行程编码的ascii编码器,但是我一直收到此错误,而且我不知道如何解决它(我是个初学者)。
TypeError: object of type '_io.TextIOWrapper' has no len()
这是代码
def rle_encode():
def encode(mstr):
wordsize = 0
encoded_msg = ''
for i in range (len(mstr)):
ch = mstr[i]
wordsize = wordsize + 1
if i == len(mstr)-1:
encoded_msg = encoded_msg + str(wordsize) + ch
break
else:
if ch == mstr[i+1]:
pass
else:
encoded_msg = encoded_msg + str(wordsize) + ch
wordsize = 0
return encoded_msg
x = open("asciiart.txt", "r")
y = encode(x)
print("Your encoded string is:\n",y)
return menu()
[如果有人可以尽快提供帮助,非常感谢您^^
p.s:不用担心这里的缩进,在代码中它们都在正确的位置。
您需要阅读文件,然后才能使用字符串索引进行访问。例如
with open('[some file]') as f:
text = f.read()
然后执行len
并访问所读取的字符串。