电子邮件刮板:将文本保存到文本文件

问题描述:

嘿我想写一个非常简单的电子邮件刮板在Python 3中,要求用户输入电子邮件的文本并将其保存到.txt文件。电子邮件刮板:将文本保存到文本文件

我试图让用户输入并将其存储在一个变量中,然后将该变量追加到文本文件中。但是,这只会将电子邮件的第一行保存到文本文件中。对我来说,它看起来像我试图存储电子邮件的变量只保存第一行,并在遇到新行时停止。

这是我试过的代码。但只写第一行到file.txt而不是整个文本。我该如何做这项工作?

print("Paste text from email") 
content = input(">") 
file = open('file.txt','a') 
file.write('\n' + '--new email--' + '\n' + content + "\n") 

问题是,input()将只读直到第一个换行符。如果你想读多行,你需要把input()放在一个循环中。问题就变成了如何知道什么时候打破循环?一个简单的解决方案是查找输入流完成的标志,例如字符串“EOF”。例如:

print("Paste text from email") 

content = "" 
line = input(">") 
while line != "EOF": 
    content += line + "\n" 
    line = input(">") 

file = open('file.txt','a') 
file.write('\n' + '--new email--' + '\n' + content + "\n") 
file.close() # don't forget to close your file! 

然后,您将运行脚本,粘贴电子邮件,然后键入“EOF”。

+0

谢谢!这样可行。有没有一种方法可以标记电子邮件结束标志? –

+0

您可以在输入上放置超时,因此在x秒内没有输入任何内容后,请写入文件。 https://stackoverflow.com/questions/15528939/python-3-timed-input – dbc