web-dev-qa-db-ja.com

Pythonはファイルに書き込みません

きれいに印刷された電子メールを.txtファイルに書き込もうとしているので、解析したいものをよりよく表示できます。

これが私のコードのこのセクションです:

result, data = mail.uid('search', None, "(FROM '[email protected]')") # 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 '[email protected]')") # 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)
10
metersk

ファイルへの変更をコミットするには、closeメソッドを呼び出す必要があります。追加 () 最後まで:

f.close()

または、 with :を使用することをお勧めします。

with open("da_email.txt", "w") as f:
    f.write(pretty_email)

これにより、ファイルが自動的に閉じられます

22
iCodez

f.close()の最後に角かっこがありません。

2
Guest