
一、前言
在Linux下面用python进行数据处理,然后输出为csv格式,如果没有中文一切正常,但是如果有中文,就会出现乱码的问题
二、处理过程
1 2 3 4 5 6 7 8 9 | #!/usr/bin/env python
# -*- coding: UTF-8 -*-
import csv
#import codecs
with open( 'test.csv' , 'wb' ) as csvfile:
# csvfile.write(codecs.BOM_UTF8)
spamwriter = csv.writer(csvfile, dialect= 'excel' )
spamwriter.writerow([ '测试' ] * 5 + [ 'Baked Beans' ])
spamwriter.writerow([ 'Spam' , 'Lovely Spam' , 'Wonderful Spam' ])
|
运行以后:
Linux下的效果
[root@lab8106 ~]# cat test.csv
测试,测试,测试,测试,测试,Baked Beans
Spam,Lovely Spam,Wonderful Spam
Windows下打开的效果

1 2 3 4 5 6 7 8 9 | #!/usr/bin/env python
# -*- coding: UTF-8 -*-
import csv
import codecs
with open( 'test.csv' , 'wb' ) as csvfile:
csvfile.write(codecs.BOM_UTF8)
spamwriter = csv.writer(csvfile, dialect= 'excel' )
spamwriter.writerow([ '测试' ] * 5 + [ 'Baked Beans' ])
spamwriter.writerow([ 'Spam' , 'Lovely Spam' , 'Wonderful Spam' ])
|
跟上面的代码相比,引入了两行代码
1 2 | import codecs
csvfile.write(codecs.BOM_UTF8)
|
我们再来看效果Linux下的效果
[root@lab8106 ~]# cat test.csv
测试,测试,测试,测试,测试,Baked Beans
Spam,Lovely Spam,Wonderful Spam
Windows下打开的效果

显示正常