我正在尝试调用函数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)
答案 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")