2014-09-01 2 views
0

아직 파이썬 세계에서 초보자이므로 제게 질문을 던지십시오. 누군가가 도울 수 있기를 바랍니다. 경로의 디렉토리를 나열하고 전자 메일로 출력을 보내려는 간단한 코드가 있습니다. 전자 메일 설정은 "TEXT"를 메일로 보내므로 작동하지만 인쇄 기능에서 stdout을 캡처하려고 힘들었습니다.루프 출력을 파이썬으로 이메일로 보냅니다.

감사

for root, dirs, files in os.walk(path): 
    for curDir in dirs: 
     fulldir = os.path.join(root, curDir) 
     print '\nThis dir : %s' % (fulldir) 

### Email setup 

SERVER = "myserver" 
PORT = "25" 

FROM = "[email protected]" 
TO = ["[email protected]"] 

SUBJECT = "Some dirs" 

TEXT = "The print loop from above please" 

# Prepare actual message 

message = """\ 
From: %s 
To: %s 
Subject: %s 

%s 
""" % (FROM, ", ".join(TO), SUBJECT, TEXT) 


### Send the message 
server = smtplib.SMTP(SERVER, PORT) 
server.sendmail(FROM, TO, message) 
server.quit() 
+1

즉시 디렉터리 목록을 인쇄하지 마십시오. 저장합니다 (예 : 목록에 있으면 인쇄하고 전자 메일로 보낼 수 있습니다. –

+0

Thanks @Duncan - 필자는 목록을 초기화 한 다음 풀 디어의 결과를 추가하여 이전에이 작업을 시도했지만 마지막 디렉토리 만 가져 왔습니다. – C9000

+0

시도한 코드를 저희에게 보여주십시오. 어쩌면 우리는 그것을 고칠 수 있습니다. –

답변

0

이 코드는 하나의 디렉토리가 각 라인에 나열되어 있는지 보장, 줄 바꿈과 디렉토리 목록을 결합합니다.

import os 

path = "C:\\tmp" #my test path 

# See http://stackoverflow.com/q/973473/474189 for other alternatives 
dirs = [x[0] for x in os.walk(path) ] 

# Print if needed 
for d in dirs: 
    print "\nThis dir : %s" % (d)   

email_text = "\n".join(dirs) 
관련 문제