Strange behavior of os.popen().readlines
本问题已经有最佳答案,请猛点这里访问。
我必须编写一个脚本,它应该与Python2/3兼容。我需要使用输入法,它应该接受不带引号的输入。python 3只支持原始输入而python2只支持输入
我编写了一个方法来检查python版本并使用相应的输入方法(如下所示)
问题是:
1 | output = os.popen('python --version').readlines() |
收益率
1 2 | Python 2.7.15rc1 [] |
因此,尽管打印了行,但列表实际上是空的
如果我更改文本以请求Git版本
1 | output = os.popen('git --version').readlines() |
它返回
1 2 | ['git version 2.17.1 '] |
喜欢它应该。
这个方法怎么会表现得这么奇怪呢?有人知道如何解决这个问题吗?
我尝试在python 2和3上运行它。
1 2 3 4 5 6 7 | def input_23_comp(text=''): output = os.popen('python --version').readlines() output = output[0].strip() if (output[0:8] == 'Python 2'): raw_input(text) else: input(text) |
但是,如果您想检查运行的Python版本,运行