我正在嘗試在python中編寫一個非常簡單的電子郵件腳本。它基本上是一個窮人的笨蛋。在工作中,我們從服務器周圍發送大量數據,並且從服務器直接發送它會容易得多。管道文本到Python腳本或提示
我卡在的部分是處理消息。我希望用戶能夠做到以下幾點:
$ cat message.txt | emailer.py [email protected]
$ tail -n 2000 /var/log/messages | emailer.py [email protected]
這兩個都很簡單。我只需sys.stdin.read()
並獲取我的數據。
說我有問題是,我也想支持一個提示與以下用法鍵入消息:
emailer.py --attach-file /var/log/messages [email protected]
Enter Your message. Use ^D when finished.
>> Steve,
>> See the attached system log. See all those NFS errors around 2300 UTC today.
>>
>> ^D
說我有麻煩的是,如果我試圖sys.stdin.read()
,並且沒有數據,那麼我的程序將阻塞,直到stdin獲取數據,但我無法打印我的提示。 我可以採取安全的做法,並使用raw_input("Enter Your message. Use ^D when finished.")
而不是stdin.read()
,但我總是打印提示。
有沒有辦法查看用戶是否將文本導入python而不使用會阻塞的方法?
你見過'mail'命令嗎? – csl 2011-05-16 22:28:22
我們將主要使用它來附加文件。沒有uuencode的郵件是沒用的,我們沒有。 – fandingo 2011-05-16 22:31:19