如何将 CSV 输出写入标准输出?

Posted

技术标签:

【中文标题】如何将 CSV 输出写入标准输出?【英文标题】:How to write CSV output to stdout? 【发布时间】:2014-07-03 03:14:14 【问题描述】:

我知道我可以编写一个类似的 CSV 文件:

with open('some.csv', 'w', newline='') as f:

我该如何将该输出写入stdout

【问题讨论】:

【参考方案1】:

sys.stdout 是对应于程序标准输出的文件对象。您可以使用其write() 方法。请注意,可能没有必要使用with 语句,因为stdout 不必打开或关闭。

所以,如果你需要创建一个csv.writer 对象,你可以说:

import sys
spamwriter = csv.writer(sys.stdout)

【讨论】:

在 Windows 上,这会导致每行后面有一个额外的回车符。 你可以给 csv.writer 构造函数一个 lineterminator 选项:writer = csv.writer(sys.stdout, lineterminator=os.linesep) lineterminator=os.linesep 没有意义,因为在 Windows 上这是无操作的。您可能指的是lineterminator='\n',这也不是一个明显正确的解决方案(请参阅this post 上的cmets)。 Reconfiguring sys.stdout to disable universal newlines handling 是一个可能的选择。

以上是关于如何将 CSV 输出写入标准输出?的主要内容,如果未能解决你的问题,请参考以下文章

如何将wc的标准输出写入文件?

如何使用 Popen 同时写入标准输出和日志文件?

如何将 csv 文件中的数据排序为标准化输出,同时读取标题以对数据进行排序

检查将啥输出写入标准输出

如何让 git diff 写入标准输出?

如何将终端输出的信息重定向写入文件中呢?