0
点赞
收藏
分享

微信扫一扫

python2 与python3 区别

大雁f 2023-02-02 阅读 89


写文件

下面这段代码,在python2中可以正常运行。但是python3会报错,因为是用w方式打开(而不是wb),则二进制数据不能写入该文件(会报错)。

with open("a.txt", 'w') as pfile:
pfile.write(b'abc')
pfile.write(b'\xef\xbb\xbf')

CSV数据操作

csv库

  • 在Python3中,csv.writer期望在文本模式下打开类似文件的对象.
  • 在Python2中,csv.writer需要一个以二进制模式打开的类文件对象.

因此,在Python3中,使用io.StringIO,而在Python2中使用io.BytesIO:
​javascript:void(0)​​

在python3,csv库对CSV数据读写文件并不是那么友好。我推荐用pandas对CSV数据进行读写。
例如我想将csv数据(二进制)解析,那么推荐:

bio = BytesIO()
bio.write(file_data) # file_data就是二进制的csv数据
bio.seek(0) # 一定要将文件指针回到0。 https://stackoverflow.com/questions/61690731/pandas-read-csv-from-bytesio
df_data = pd.read_csv(bio)


举报

相关推荐

0 条评论