首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从Python中运行交互式命令

从Python中运行交互式命令
EN

Stack Overflow用户
提问于 2012-07-13 02:07:13
回答 2查看 39.8K关注 0票数 20

我有一个脚本,我想从Python (2.6.5)中运行,它遵循以下逻辑:

  • 会提示用户输入密码。它看起来像("Enter password:") (*注意:输入不会回显到屏幕),输出与用户无关的information
  • Prompt

用户响应("Blah

  • Blah blah (Y/N)?:")

最后一个提示行包含我需要解析的文本(filename.txt)。提供的响应并不重要(程序实际上可以在不提供响应的情况下退出,只要我可以解析这行代码)。

我的需求有点类似于,但那里的响应似乎有点令人困惑,即使操作员提到它不适合他,我的也仍然挂起。

通过环顾四周,我得出结论,subprocess是做这件事的最好方法,但我有一些问题。这是我的Popen行:

代码语言:javascript
复制
p = subprocess.Popen("cmd", shell=True, stdout=subprocess.PIPE,
stderr=subprocess.STDOUT, stdin=subprocess.PIPE)

  • 当我在stdout上调用read()readline()时,提示是printer to screen,它挂起。

  • 如果我调用stdinwrite("password\n"),提示符就会写入屏幕并挂起。write()中的文本未写入(我不会将光标移动到新行)。

  • 如果我调用p.communicate("password\n"),则行为与

的write()相同

我在这里寻找一些关于输入到stdin的最佳方式的想法,以及如果您觉得慷慨的话,可能如何解析输出中的最后一行,尽管我最终可能会弄清楚。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11457931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档