1

可能重复:
如何在调用方法后写入标准输出(自动执行通知系统(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 回答