问题描述
我正在尝试将 pprint 的输出写入文件,但这样做时它会替换我之前的输出。
def summarize_snippets(seg):
for seg in truncated_sentence:
input_text = ' '.join(seg)
summary_text = summarizer(input_text,min_length=50,max_length=80)
summ = summary_text[0].get('summary_text')
pp.pprint(summary_text[0].get('summary_text'))
with open("/content/drive/MyDrive/path/summary.txt","w+") as summ_file:
pp.pprint((summary_text[0].get('summary_text')),summ_file)
我希望显示为输出的所有内容都在文件中,而不仅仅是最后一个。 我试图将 write 命令排除在循环之外,但它给出了错误。有没有更好的方法来实现这一目标?
我在调用函数 summary_snippets(seg) 时尝试写入文件,它仍然覆盖了之前的输出。
with open("/content/drive/MyDrive/crystal_ball/output/summary/summary.txt","w+") as summ_file:
pp.pprint(summarize_snippets (seg),summ_file)
解决方法
我通过如下简单的修复解决了我的问题 -
def summarize_snippets(joined_sentence):
summ_text= []
for seg in joined_sentence:
#input_text = seg
summary_text = summarizer(seg,min_length=50,max_length=80)
summ = summary_text[0].get('summary_text')
summ_text.append(summ)
pp.pprint(summary_text[0].get('summary_text'))
with open('/content/drive/MyDrive/path/summary.txt','w') as f:
for item in summ_text:
f.write("%s\n\n\n\n\n\n" % item)