写文件
下面这段代码,在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)