2016-07-19 10 views
1

그래서 저는 Gmail 계정을 확인하도록 설정된 Raspberry Pi 단위를 가지고 있으며, 새 메일이 나타나면 축제를 통해 큰 소리로 읽습니다.축제에 사용자 입력을 전달하십시오.

나는 메시지가 들어오는 이메일의 내용 인 원문 'echo "' + str(message) + '" | festival --tts' 전화를 통해 축제와 상호 작용합니다.

나는 누군가가 그 메시지에 불쾌한 것을 보내고 컴퓨터를 파괴 할 수 있다고 생각하는데 나는 메시지를 깨끗이하고 일반적으로 프로세스를보다 안전하게 만드는 좋은 방법이 있는지 궁금해하고있다.

전자 메일 주소의 유효성을 검사 할 수 있지만 유효성 검사를 거친 전자 메일 내에서도 가능한 모든 점검을하고 싶습니다.

답변

1

페스티벌을 호출하기 위해 셸을 사용해야하는 이유가 있습니까?
그렇지 않은 경우 Python 안에 있고 lib (예 : pyfestival)를 사용하는 것이 더 간단 할 수 있으며 누군가가 메시지에 셸 코드를 삽입 할 위험이 없습니다.

업데이트 : 당신이 별도의 프로세스를 통해 그것을 호출 할 때, 그런 일 (아니지만 아직 테스트)

from subprocess import Popen, PIPE 
p = Popen(['festival', '--tts'], stdin=PIPE) 
p.communicate(input=message) 

와 그것을 시도 위의 그 question의 대답의 사용자 정의 버전입니다

+0

나는 나무 딸기 파이에 있고 나는 pyfestival 설치 문제가 있었다. 축제를 통해 스크립트에서 텍스트를 읽을 수 있지만 명령 줄 도구가 붙어 있습니다. – Chris