如何解决typerror [关闭]

问题描述 投票:-3回答:1

[我正在制作一个需要打开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:不用担心这里的缩进,在代码中它们都在正确的位置。

python python-3.x encoder
1个回答
0
投票

您需要阅读文件,然后才能使用字符串索引进行访问。例如

with open('[some file]') as f:
    text = f.read()

然后执行len并访问所读取的字符串。

© www.soinside.com 2019 - 2024. All rights reserved.