Python의 메일 명령 - 03 표준 입력

다시 오신 것을 환영합니다! 이 시점에서 우리는 명령줄 플래그를 모두 사용할 준비가 되었습니다. 다음으로 필요한 것은 stdin에서 입력을 파이프로 연결하거나 수동으로 입력하는 것입니다. 이 두 가지는 고맙게도 동일합니다.

Python에는 다음과 같이 사용할 수 있는 입력 함수가 있습니다.

anything = input()
print(anything)


이것은 한 줄의 텍스트를 가져옵니다. 그러나 우리는 우리 프로그램에 어떤 수의 줄이라도 입력하기를 원합니다. 이를 위해 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!


이것은 우리가 파이썬 메일 애플리케이션을 실행하는 본문을 제공하도록 합니다. 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!


짜잔! 이제 이메일 본문을 가질 수 있습니다. 다음 단계는 메일 기능을 작성하는 것입니다. 그렇게 하면 명령 프로세서인 주요 기능과 실제 메일링을 처리하는 메일 기능을 붙일 수 있습니다.

앞으로!

좋은 웹페이지 즐겨찾기