为什么许多关于编写csv文件的教程都将模式设置为'wb'?

2024-04-29 20:15:50 发布

您现在位置:Python中文网/ 问答频道 /正文

例如:Writing to csv file in Python

with open('StockPrice.csv', 'wb') as f:

为什么我们需要用二进制文件打开csv文件?在

这仅仅是一种习惯,还是说csv文件需要二进制文件?在


Tags: 文件csvtoinaswith二进制open
1条回答
网友
1楼 · 发布于 2024-04-29 20:15:50

在Windows上使用csv模块编写输出时,必须使用"wb"模式,因为无论您在哪个平台上运行,csv模块都会将行尾写成\r\n。在

如果您在Windows上运行,并且有一个以"w"模式打开的文件,Python将在每次编写换行符时添加一个额外的回车符。因此,如果您使用模式为"w"的文件来使用csv模块编写输出,那么您将以\r\r\n行结束,因为Python和csv模块都添加了回车符。在

下面是一个演示结果的快速程序。请注意,我们以二进制模式("rb")读取文件,以防止Python在读回文件时将\r\n替换为\n

import csv

with open("output.csv", "w") as f:
    w = csv.writer(f)
    w.writerow([1,2,3,4])
    w.writerow([5,6,7,8])

with open("output.csv", "rb") as f:
    print repr(f.read())

在Windows上运行此程序时,我得到以下输出:

^{pr2}$

相关问题 更多 >