【问题标题】:Python calling Perl ScriptPython 调用 Perl 脚本
【发布时间】:2015-09-19 07:23:21
【问题描述】:

所以当我在命令行上运行我的 Perl 脚本时,它会要求

用户:(输入姓名并回车)

密码:(然后它会要求输入密码,然后我按回车键) 然后我可以运行命令

所以如果你看到,那是一系列步骤

我知道当你使用 subproccess 命令时,我可以调用一个脚本并让它运行。但是一旦Python运行了命令,输入user后怎么继续输入用户密码呢?当我使用“subprocess.call(command, shell=True)”运行它时,Pycharm 要求输入“用户:”,当我输入它时,它会冻结。

如果可能,我想配置 python 将我的登录信息放入脚本中,然后运行命令。我过去做过类似的事情,但它只是运行脚本并输出数据。这个 perl 脚本要求我先登录,然后才能输出我遇到问题的数据。

【问题讨论】:

标签: python perl shell subprocess


【解决方案1】:

查看the pexpect module。它完全符合您的要求,例如:

child = pexpect.spawn('perl foo.pl')
child.expect('User:')
child.sendline('my_username')
child.expect('Password:')
child.sendline('my_password')

【讨论】:

  • output, status = pexpect.run('perl foo.pl', withexitstatus=1, events={'(?i)user:': 'my_username', '(?i)password:': 'my_password'})
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-23
  • 2012-07-23
  • 2013-06-08
  • 1970-01-01
  • 2014-06-05
相关资源
最近更新 更多