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

2024-04-24 11:12:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调用一个函数-write \u corpus \u to \u file,但是当我运行程序时,我得到了错误代码“Attribute error:List has no Attribute”txt“。我是Python初学者,有人能帮我吗

功能:

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)

Tags: to函数程序txtinputattributecorpusmyfile
1条回答
网友
1楼 · 发布于 2024-04-24 11:12:39

您忘了将文件名加引号:

write_corpus_to_file(extcorpus, "corpus.txt")

如果没有引号,那么python将按字面上的corpus.txt,并尝试访问名为corpus的变量的txt属性。那当然不存在,因此是错误的

还有一个建议。而不是这样:

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")

相关问题 更多 >