V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
intosec
V2EX  ›  Python

用 python 可以实现与交互式命令行程序的交互,并定时获取程序的输出吗?

  •  
  •   intosec · 2015-01-18 11:34:15 +08:00 via Android · 3787 次点击
    这是一个创建于 3628 天前的主题,其中的信息可能已经有所发展或是发生改变。
    需求是这样的,有一个命令行程序,闭源的,也没有提供任何接口,为了方便远程操作,并简化输入命令行参数的步骤,我需要做一个类似webgui的东西来远程启动进程并定时监控其运行状态(获取命令行的输出)
    这个程序在运行时可以接收键盘的命令,比如按下s可以刷新最新状态,按下p可以暂停等等,用Python可以进行这样的交互式操作吗?
    如果Python不能实现,用什么方法能实现类似的功能?
    7 条回复    2015-01-19 15:38:57 +08:00
    richardtsai
        1
    richardtsai  
       2015-01-18 11:40:40 +08:00   ❤️ 1
    subprocess包?
    intosec
        2
    intosec  
    OP
       2015-01-18 11:52:17 +08:00 via Android
    @richardtsai subprocess可以在程序运行的过程中,实时获取程序的输出吗?因为这个程序执行时间会比较长。
    9hills
        3
    9hills  
       2015-01-18 12:00:11 +08:00 via iPhone
    @intosec 可以
    intosec
        4
    intosec  
    OP
       2015-01-18 12:02:00 +08:00 via Android
    @9hills 有别的提示吗?
    9hills
        5
    9hills  
       2015-01-18 12:08:41 +08:00 via iPhone   ❤️ 1
    @intosec popen communicate 放狗搜下
    saber000
        6
    saber000  
       2015-01-19 11:39:32 +08:00
    @9hills 这个真的不可以 放狗搜下
    intosec
        7
    intosec  
    OP
       2015-01-19 15:38:57 +08:00
    @9hills
    @saber000
    问题已解决。
    可能是我的问题问得不对。
    但是按这个可以满足我的需求: http://code.activestate.com/recipes/440554-module-to-allow-asynchronous-subprocess-use-on-win/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2059 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 16:13 · PVG 00:13 · LAX 08:13 · JFK 11:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.