Javascript Windows上的Python标准

Javascript Windows上的Python标准,javascript,python,windows,Javascript,Python,Windows,Windows上的Python不使用正常的标准输出,所以这里发生了什么 python --version Python 2.7.15 显示一个版本!但我无法捕捉它 python --version > temp.txt Python 2.7.15 type temp.txt 没什么 问题是,我需要根据Python版本(来自JavaScript)来执行逻辑,但到目前为止还没有希望。尝试将stderr重定向到stdout,同时将stdout重定向到一个文件: python--version

Windows上的Python不使用正常的标准输出,所以这里发生了什么

python --version
Python 2.7.15
显示一个版本!但我无法捕捉它

python --version > temp.txt
Python 2.7.15
type temp.txt
没什么


问题是,我需要根据Python版本(来自JavaScript)来执行逻辑,但到目前为止还没有希望。

尝试将stderr重定向到stdout,同时将stdout重定向到一个文件:


python--version 1>temp.txt 2>&1

您可以使用python命令将版本信息打印到标准输出:

> python -c "import sys;print(sys.version)" > temp.txt
执行此命令后,
temp.txt
将包含版本信息

> type temp.txt
2.7.15 |Anaconda, Inc.| (default, May  1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)]
如果您想变得更有趣,可以使用
sys.version\u info
仅提取版本的特定部分,如中所述的主要编号。使用以下行将仅在
temp.txt
中存储主版本号:

> python -c "import sys;print(sys.version_info[0])" > temp.txt
> type temp.txt
2

所以,我需要这个去STDOUT。发送到文件就像你对文件有作用一样,但是如果我尝试在STDOUT中以同样的方式获取它,比如:
python--version 1>temp.txt 2>&1 |键入temp.txt
我的输出将被吞没。为什么不先
python--version 1>temp.txt 2>&1
然后在新行上(new命令)do:
键入temp.txt
?我正在使用的库检查Linux/Windows/Mac上的一个命令。为它提供一个特例,让它只为一些不可靠的windows bug运行两个命令是可能的,但并不可取。更好的是,如果python+windows能够正常运行,那么第二种情况将是一种修复单个命令以提供有效标准输出的方法。最糟糕的情况是我们这里遇到的问题的上游逻辑。我不认为这是一个windows错误。这也不适用于linux:
echo hello>/tmp/test | cat
不返回任何内容。但是
echo hello>/tmp/test;cat/tmp/test
确实(在同一新行上有两个命令)适用于windows,您可以尝试使用
&
&
&
始终执行正确的命令,并且
&
在第一个命令结束时执行),因此
python--version 1>temp.txt 2>&1&例如键入temp.txt