csv 基本操作, 报错解决(UnicodeEncodeError: 'utf-8' codec can't encode characters in position 232-233: surrogates not allowed)
2024-10-07 19:17:01
最常用的一种方法,利用pandas包
import pandas as pd #任意的多组列表
a = [1,2,3]
b = [4,5,6] #字典中的key值即为csv中列名
dataframe = pd.DataFrame({'a_name':a,'b_name':b}) #将DataFrame存储为csv,index表示是否显示行名,default=True
dataframe.to_csv("test.csv",index=False,sep=',')
a_name b_name
0 1 4
1 2 5
2 3 6
同样pandas也提供简单的读csv方法
import pandas as pd
data = pd.read_csv('test.csv')
会得到一个DataFrame类型的data,不熟悉处理方法可以参考pandas十分钟入门
另一种方法用csv包,一行一行写入
import csv #python2可以用file替代open
with open("test.csv","w") as csvfile:
writer = csv.writer(csvfile) #先写入columns_name
writer.writerow(["index","a_name","b_name"])
#写入多行用writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])
index a_name b_name
0 1 3
1 2 3
2 3 4
读取csv文件用reader
import csv
with open("test.csv","r") as csvfile:
reader = csv.reader(csvfile)
#这里不需要readlines
for line in reader:
print line
如果报错,使用以下方法:
错误:UnicodeEncodeError: 'utf-8' codec can't encode characters in position 232-233: surrogates not allowed
import csv
with open(file,'w',encoding='utf8', errors='surrogatepass') as csvfile:
csv_writer = csv.writer(csvfile)
csv_writer.writerow(headers)
csv_writer.writerow(row)
最新文章
- C#移动跨平台开发(1)环境准备
- Module Zero概览
- android5.1 for tq335x
- Git使用方法
- PHP中file_put_contents追加时换行
- php 类
- CSS3之圆角
- SQLite的 SQL语法总结
- 编译原理Tiny语言的定义
- ThinkPHP3.2.3版本验证码异步第二次验证时失败的问题解决
- 在.net下打造mongoDb基于官方驱动最新版本
- LeetCode 81. Search in Rotated Sorted Array II(在旋转有序序列中搜索之二)
- iOS 工程默认只允许竖屏,在单独界面进行横竖转换,屏幕旋转
- 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例[转]
- Android开发之仿微信显示更多文字的View
- 带着萌新看springboot源码13(手写一个自己的starter)
- python,魔法方法指南
- excel导入 服务器忘了装组件了。。。
- Swift学习——A Swift Tour 协议和扩展
- .NET AOP微型框架发布 --CleanAOP