电子邮件刮板:将文本保存到文本文件
问题描述:
嘿我想写一个非常简单的电子邮件刮板在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”。
谢谢!这样可行。有没有一种方法可以标记电子邮件结束标志? –
您可以在输入上放置超时,因此在x秒内没有输入任何内容后,请写入文件。 https://stackoverflow.com/questions/15528939/python-3-timed-input – dbc