【发布时间】:2012-02-24 03:04:06
【问题描述】:
我在文件 'bin/test' 中有一个简单的 python 脚本:
#!/usr/bin/env python
import argparse
PROGRAM_NAME = "name"
PROGRAM_VERSION = "0.0.1"
PROGRAM_DESCRIPTION = "desc"
parser = argparse.ArgumentParser(prog=PROGRAM_NAME, description=PROGRAM_DESCRIPTION)
parser.add_argument('--version', action='version', version='%(prog)s ' + PROGRAM_VERSION)
args = parser.parse_args()
当我使用--version 参数或--help 运行它时,它会打印一切正常:
$ bin/test --version
name 0.0.1
$ bin/test --help
usage: name [-h] [--version]
desc
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
当我使用subprocess.check_output 运行文件时,它什么也得不到:
>>> subprocess.check_output(["bin/test", "--help"], stderr=subprocess.STDOUT, shell=True)
''
>>> subprocess.check_output(["bin/test", "--version"], stderr=subprocess.STDOUT, shell=True)
''
我正在使用带有 Python 版本的 Ubuntu 11.10:
python --version
Python 2.7.1+
我需要在测试中获取脚本输出。我该怎么做?
【问题讨论】:
-
不知道是不是这个原因,但--help和--version之前不应该有空格
-
感谢您的想法,我已经检查过了 - 没有区别,无论输出的空格仍然是空的。我还删除了问题中的空格。
标签: python subprocess argparse