1

重複の可能性:
メソッドを呼び出した後にstdoutに書き込む方法(通知システムを自動で実行する(iPhone))

djangoアプリで自動的に実行したい次のスクリプトがあります。問題は、ユーザー入力を求め続けることです。

ユーザー入力を自動的に渡す方法を知りたいですか?これはスクリプトです:

from apns import APNs, Payload

apns = APNs(use_sandbox=True, cert_file='cert.pem', key_file='key.pem')

# Send a notification
token_hex = 'b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b87'
payload = Payload(alert="Hello World!", sound="default", badge=1)
my_pass_phrase = 'efisgbieafb3939bg93g238g4792gff9'
apns.gateway_server.send_notification(token_hex, payload)

この問題は次の行で発生します。

apns.gateway_server.send_notification(token_hex, payload)

スクリプトは次のように要求します。PEMパスフレーズを入力してください:そしてユーザー入力を待ちます。

パスフレーズを自動的に渡す方法を教えてください。前もって感謝します!

4

1 に答える 1

1

ライブラリを使用していて、ユーザー入力の要求を抑制するための直接アクセス権がない可能性があるため、このスクリプトを呼び出すコードで行う必要があるのは、pexpectモジュールを使用して出力の特定のパターンを監視してからです。入力を適切に送信します。

http://pypi.python.org/pypi/pexpect-u/2.5.1

ここでの例:http ://www.noah.org/wiki/pexpect

次のようなものになる可能性があります:

import pexpect

child = pexpect.spawn('myAPNscript.py')
child.expect('Enter PEM pass phrase:.*')
child.sendline('FOO')
于 2012-09-14T17:51:53.740 に答える