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

Python错误代码:';列表没有属性';txt';,python,Python,我试图调用一个函数-将语料库写入文件,但是当我运行程序时,我得到错误代码“Attribute error:List没有属性”txt“。我是python初学者,有人能帮我吗 职能: def write_corpus_to_file(mycorpus, myfile): f = open(myfile, 'w') newcorpus = ''.join(mycorpus) f.write(newcorpus) f.close() 主回

我试图调用一个函数-将语料库写入文件,但是当我运行程序时,我得到错误代码“Attribute error:List没有属性”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)

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

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)
此方法确保资源被正确释放,并且即使发生错误,文件也被正确写入和关闭

编辑
扩展
,与对列表进行操作的其他功能一样,都可以正常工作。这意味着它修改列表,而不返回新列表。因此,当您执行
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")

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

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)
此方法确保资源被正确释放,并且即使发生错误,文件也被正确写入和关闭

编辑
扩展
,与对列表进行操作的其他功能一样,都可以正常工作。这意味着它修改列表,而不返回新列表。因此,当您执行
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")

myfile
应该是字符串,而不是变量名。所以
corpus.txt
应该是
“corpus.txt”
myfile
应该是字符串,而不是变量名。所以
corpus.txt
应该是
“corpus.txt”
谢谢!然而,当我这样做的时候,我得到了另一个错误代码:TypeError:只能加入一个iterableThank you!然而,当我这样做时,我得到了另一个错误代码:TypeError:只能加入一个iterable