Pythonのメールコマンド- 03標準入力


ようこそ!この時点で、我々はコマンドラインフラグをすべての準備ができている.我々が必要とする次のものは、stdINから入力のどちらかパイプを手に入れるか、手動でそれを入力することです.これらは両方とも同じ感謝です.
Pythonには以下のような入力関数があります:
anything = input()
print(anything)
これは1行のテキストになります.しかし、我々は我々のプログラムにどんな線ででも送りたいです.これを行うには、Pythonからsysモジュールを使ってstdinから読み込むことができます.
#!/usr/bin/env python3
import argparse
import sys

def main():
    ...
    args = parser.parse_args()

    body = []
    for line in sys.stdin:
        body.append(line)
    body = "".join(body)

    print(args)
    print(body)
ここでは、Ctrl - Dまでの標準入力をループします.Ctrl - Dは入力のフラッシュをトリガーし、プログラムを継続させる文字です.
各行を配列に読み込み、一緒に結合します.NULL文字列で配列を区切ることに注意する必要があります.これは、新しい行文字が既に入力の一部になりますので、手動で追加する必要はありません.
これで次のことができます.
> ./pymail -s "A body" -c test@example.com -c [email protected] -r [email protected] -t [email protected] [email protected]
Hi!
Namespace(attachment=[], cc_address=['[email protected]', '[email protected]'], from_address='[email protected]', html_flag=False, subject='A body', to_address=['[email protected]', '[email protected]'])
Hi!
これは、Pythonメールアプリケーションを実行する本体を提供しましょう.Ctrl - Dを使用して入力を終了します.
また、私たちのプログラムを本体で配管することもできます.
> echo "Hi!" | ./pymail -s "A body" -c test@example.com -c [email protected] -r [email protected] -t another_to@ex
ample.com [email protected]
Namespace(attachment=[], cc_address=['[email protected]', '[email protected]'], from_address='[email protected]', html_flag=False, subject='A body', to_address=['[email protected]', '[email protected]'])
Hi!
Voila!我々は今、電子メールの本文を持つことができます.次のステップはメール機能を書くことです.一旦我々がそうするならば、我々は我々のコマンドプロセッサーである我々の主な機能とものの実際の郵送を扱うメール機能を接着することができます.
以降!