python 保存scv文件乱码与报错的问题解决TypeError: a bytes-like object is required, not 'str'

Python版本: 3.6
今天准备对爬取下来的内容整理的时候, 想利用自带的csv模块处理保存到文件, 结果发现总是出现很多问题.

比如:

import csv

f = open('/Users/neroasmar/Downloads/f.csv', 'wb')
writer = csv.writer(f)
writer.writerows(line)

f.close()

这样会导致报错:TypeError: a bytes-like object is required, not 'str'

import csv

f = open('/Users/neroasmar/Downloads/f.csv', 'w')
writer = csv.writer(f)
writer.writerows(line)

f.close()

这样直接会导致保存到文件内的中文文字发生乱码.

解决方法如下:

import csv
import codecs  # 使用codecs模块

f = codecs.open('/Users/neroasmar/Downloads/f.csv', 'w', 'utf_8_sig')
writer = csv.writer(f)
writer.writerows(data)

f.close

这样就可以解决excel查看的时候中文乱码的问题, 而且还不会保错.

你可能感兴趣的:(python)