python2 与python3 区别

写文件

下面这段代码,在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:
https://blog.csdn.net/weixin_39552179/article/details/110553680

在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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值