Python Pandas to_csv(sys.stdout)不';我不能在我的环境下工作

Python Pandas to_csv(sys.stdout)不';我不能在我的环境下工作,python,python-3.x,macos,python-2.7,pandas,Python,Python 3.x,Macos,Python 2.7,Pandas,我运行了以下简单脚本: import sys import pandas as pd df = pd.DataFrame([[1,2,3], [4,5,6]]) df.to_csv(sys.stdout) 预期输出(作为标准输出) 但是,在macOS 10.12.6上的Python2.7.15下,我没有得到标准输出。相反,它生成了一个名为的文件,其中包含预期的输出 有趣的是,在同一操作系统上,Python3.6.5可以将结果显示为标准输出而没有任何问题,而virtualenved Python

我运行了以下简单脚本:

import sys
import pandas as pd
df = pd.DataFrame([[1,2,3], [4,5,6]])
df.to_csv(sys.stdout)
预期输出(作为标准输出) 但是,在macOS 10.12.6上的Python2.7.15下,我没有得到标准输出。相反,它生成了一个名为
的文件,其中包含预期的输出

有趣的是,在同一操作系统上,Python3.6.5可以将结果显示为标准输出而没有任何问题,而virtualenved Python3.6.5无法显示它(并生成了
文件)


是否有人确定导致这一结果的原因?Pandas的版本是0.23.1。

看起来这是一个已知的问题:


取决于您最终尝试做什么,此解决方案可能有用,也可能无效:

In [85]: from io import StringIO

In [86]: output = StringIO()

In [87]: df.to_csv(output)

In [88]: print(output.getvalue())
,0,1,2
0,1,2,3
1,4,5,6
(Python 3.6)

对于Python 2.7,将上面的一行替换为:

from StringIO import StringIO
更新:

事实上,我认为:

from StringIO import StringIO
In [3]: from io import StringIO

In [4]: output = StringIO()

In [5]: df.to_csv(output)

In [6]: output.seek(0)
Out[6]: 0

In [7]: print(output.read())
,0,1,2
0,1,2,3
1,4,5,6