2013-10-10 4 views
3

.txt 파일에 예쁜 인쇄 전자 메일을 쓰려고 시도하고 있으므로 구문 분석하려는 내용을 더 잘 볼 수 있습니다. 여기 Python이 파일에 쓰지 않습니다.

내 코드의이 부분이다 :

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) 

답변

13

당신은 파일에 변경 내용을 커밋 close 메소드를 호출 할 필요가있다.

f.close() 

을 심지어 더 나은 with 사용하는 것입니다 : 끝에 () 추가 자동으로

+5

파일을 닫는 것을 원하지 않으면'f.flush()'를 호출하여 쓰기 버퍼를 비울 수 있습니다. – amitparikh

+0

고마워,하지만 여전히 작동하지 않습니다 :/ – metersk

+0

나는 두 번째 방법을 사용하지 않으려 고 노력했습니다. 이 스크립트가 실행되는 곳이면 어디서든이 파일을 쓸 것이라고 가정하는 것이 맞습니까? – metersk

2

당신은 f.close()의 끝 부분에 괄호를 누락에 대한 파일을 닫습니다

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

을 .

+2

이것은 3 년 된 허용 대답과 동일합니다. – miken32

관련 문제