Python不会写入文件
Posted
技术标签:
【中文标题】Python不会写入文件【英文标题】:Python won't write to file 【发布时间】:2013-10-18 18:05:41 【问题描述】:我正在尝试将打印精美的电子邮件写入 .txt 文件,以便更好地查看要从中解析出的内容。
这是我的代码的这一部分:
result, data = mail.uid('search', None, "(FROM 'tiffany@e.tiffany.com')") # search and return uids instead
latest_email_uid = data[0].split()[-1]
result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]
html = raw_email
soup = BS(html)
pretty_email = soup.prettify('utf-8')
f = open("da_email.txt", "w")
f.write(pretty_email)
f.close
我没有遇到任何错误,但我无法将数据写入文件。我知道数据已正确存储在 pretty_email 变量中,因为我可以在控制台中打印出来。
有什么想法吗?
我的更新代码仍然不起作用:
result, data = mail.uid('search', None, "(FROM 'tiffany@e.tiffany.com')") # search and return uids instead
latest_email_uid = data[0].split()[-1]
result, data = mail.uid('fetch', latest_email_uid, '(RFC822)')
raw_email = data[0][1]
html = raw_email
soup = BS(html)
pretty_email = soup.prettify('utf-8')
with open("da_email.txt", "w") as f:
f.write(pretty_email)
【问题讨论】:
【参考方案1】:您需要调用 close 方法来提交对文件的更改。在末尾添加()
:
f.close()
或者更好的是使用with
:
with open("da_email.txt", "w") as f:
f.write(pretty_email)
自动为你关闭文件
【讨论】:
只是添加... 您确定您在寻找正确的目录吗?它可能会将它放在(某个奇怪的地方)/da_email.txt 中,具体取决于您的程序是如何被调用的。如果它尝试写入但无法写入,则会抛出异常。 到当前工作目录,更具体地说。但它很可能是您从哪里开始(取决于您使用的 IDE)。 @user1887261 - 是的。如果您未指定完整路径,Python 将在与脚本相同的目录(或当前工作目录,如果您更改了它)中查找文件。如果它找到它,它会写信给它。否则,它将在该目录中创建文件。 @user1887261:让我们通过with open(r"C:\users\Andrew\da_email.txt", "w") as f:
完全排除密码/路径问题,看看会发生什么。【参考方案2】:
您缺少f.close()
末尾的括号。
【讨论】:
这与 3 岁接受的答案相同。以上是关于Python不会写入文件的主要内容,如果未能解决你的问题,请参考以下文章
Systemd 服务不会将 python 脚本写入文件,python 脚本在从 cli 执行时名义上运行
cv2.VideoWriter 不会使用fourcc h.264写入文件(使用罗技c920,python 2.7,windows 8)