【问题标题】:when creating script have :TypeError: '_io.TextIOWrapper' object is not subscriptable创建脚本时有 :TypeError: '_io.TextIOWrapper' 对象不可下标
【发布时间】:2016-12-05 23:00:48
【问题描述】:

我正在尝试使我的代码缩小列表中的单词输入范围,然后将它们排序到不同的列表中,但它抛出了这个任何人都可以帮助我吗?

Traceback (most recent call last):
File "C:/Users/dan/Desktop/python/threeword.py", line 4, in <module>
word = words[x],words[(x+1)],words[(x+2)]
TypeError: '_io.TextIOWrapper' object is not subscriptable

words=open("three.txt",'r+')
f=open("three1","w")
for x in words:
   word = words[x],words[(x+1)],words[(x+2)]
   print(word)
   input=('y or n')
   if input=="y":
       f.write(word)
       x=x+3
   elif input=='stop':
       break
   else:
       x=x+3
f.close()

【问题讨论】:

标签: python


【解决方案1】:

您的问题是,当您将words 分配给open(filename) 时,您不能直截了当地说words[0],python 中的open 函数不会返回列表(如您所想)而是返回一个file 对象,如python 文档中所述,关于open() 函数的作用:

打开一个文件,返回一个文件类型的对象

而不是做任何一个 words = open(filename).read()words = list(words) 然后你可以做words[0]

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 2019-10-09
    • 2016-01-30
    • 2016-07-23
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    • 2016-07-20
    相关资源
    最近更新 更多