Python错误代码:'列表没有属性' txt'

时间:2017-11-18 09:01:51

标签: python

我正在尝试调用函数write_corpus_to_file,但是当我运行程序时,我收到错误代码'属性错误:列表没有属性' txt''。我是初学者,有人可以帮忙吗?

功能:

def write_corpus_to_file(mycorpus, myfile):
    f = open(myfile, 'w')
    newcorpus = ''.join(mycorpus)
    f.write(newcorpus)
    f.close()                

主循环部分:

elif user_input=="a":
    addseq = input("Enter new input to corpus ")
    tidy_text(addseq)
    extcorpus = corpus.extend(addseq)
    write_corpus_to_file(extcorpus, corpus.txt)

1 个答案:

答案 0 :(得分:2)

您忘了将文件名放在引号中:

write_corpus_to_file(extcorpus, "corpus.txt")

如果你没有引号,那么python会逐字地获取corpus.txt,并尝试访问名为txt的变量的corpus属性。那当然不存在,因此错误。

另外,推荐。而不是:

f = open(myfile, 'w')
f.write(newcorpus)
f.close() 

这样做:

with open(myfile, 'w') as f:
    f.write(newcorpus)

此方法可确保正确释放资源,即使出现错误,也可以正确写入和关闭文件。

编辑extend与在列表上运行的其他功能一样,就地。这意味着它会修改列表,而不会返回新列表。因此,当您执行extcorpus = corpus.extend(addseq)时,extcorpus没有任何值,因为extend不会返回任何内容。

更改您的代码:

elif user_input=="a":
    addseq = input("Enter new input to corpus ")
    tidy_text(addseq)
    corpus.extend(addseq)
    write_corpus_to_file(corpus, "corpus.txt")