TypeError:“NoneType”对象是unsubscriptable

时间:2013-08-03 19:55:02

标签: python file object

使用Python运行此代码时出现此错误:

  

TypeError:" NoneType"对象是不可取消的"。

代码:

number = 0

with open('playlist.txt') as read_number_lines:
    for line in read_number_lines:
        if line.strip():
            number += 1

number = number - 1
print 'number: ', number

for i in range(number):
    author_ = raw_input('author: ')
    line = input('line: ')
    file = open('playlist.txt','a').writelines(' - ' + author_)[line]

我该如何解决?

1 个答案:

答案 0 :(得分:1)

你在

中遇到了一些问题
file = open('playlist.txt','a').writelines(' - ' + author_)[line]

错误的直接来源是.writelines()没有返回任何内容(因此返回None),您尝试使用[line]进行索引。这会产生你的错误。

此外,您不应直接在open()电话上调用该方法。

整个第二个for循环对我来说是神秘的。您在循环的每次迭代期间再次打开该文件(您不想这样做;它可能甚至不起作用)。

也许你想做类似

的事情
with open('playlist.txt','a') as file:
    for i in range(number):
        author_ = raw_input('author: ')
        line = raw_input('line: ')
        file.write(author + " - " + line)

但是仍然很难看出这一点......