一、文件操作
示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
二、异常处理
1.列表读写
"""
开头是不留空,以行为单位。
可含或不含列名,含列名则居文件第一行。
一行数据不跨行,无空行。
以半角逗号(即,)作分隔符,列为空也要表达其存在。
列内容如存在半角引号(即"),替换成半角双引号("")转义,即用半角引号(即"")将该字段值包含起来。
文件读写时引号,逗号操作规则互逆。
内码格式不限,可为 ASCII、Unicode 或者其他。
不支持特殊字符
获取CSV写操作对象
csvWriter = csv.writer(csvfile,[dialect ='excel',** fmtparams])
返回一个编写器对象。
CSV写操作方法
writer.writerow() #写入一行数据,即将一个可迭代对象写入文件
writer.writerows() #写入多行数据到CSV文件
"""
import csv
#newline 区分换行符
with open('dt.csv', "w", newline="") as f:
csvWrite=csv.writer(f)#获取csv文件操作对象
#进行写操作
IsHeader=['姓名','年龄','成绩']
ls = []
ls.append(["张三", 18, 90])
ls.append(["李四", 19, 92])
ls.append(["王五", 17, 89])
csvWrite.writerow(IsHeader)
csvWrite.writerows(ls)
"""
读取数据
"""
with open('dt.csv', "r", newline="") as f2:
#获取CSV读操作对象
csvReader=csv.reader(f2)
#进行操作
ls2=list(csvReader)
print(ls2)
2.字典读写
"""
获取Dict方式的CSV写操作对象
1)调用 csv 模块中类 DictWriter 的语法为:csv.DictWriter(f, fieldnames)。语法中的参数 f 是 open() 函数打开的文件对象;参数 fieldnames 用来设置文件的表头;
2)执行csv.DictWriter(f, fieldnames)后会得到一个 DictWriter 对象;
3)得到的 DictWriter 对象可以调用 writeheader() 方法,将 fieldnames 写入 csv 的第一行;
4)最后,调用 writerows() 方法将多个字典写进 csv 文件中。
"""
import csv
d1 = {"姓名":"张三","年龄":18,"成绩":90}
d2 = {"姓名":"李四","年龄":19,"成绩":92}
d3 = {"姓名":"王五","年龄":17,"成绩":89}
ls = []
ls.append(d1)
ls.append(d2)
ls.append(d3)
print(ls)
#[{'姓名': '张三', '年龄': 18, '成绩': 90}, {'姓名': '李四', '年龄': 19, '成绩': 92}, {'姓名': '王五', '年龄': 17, '成绩': 89}]
Isheader=ls[0].keys()#['姓名', '年龄', '成绩']
with open('dt.csv',"w",newline='') as f:
print(list(Isheader))#['姓名', '年龄', '成绩']
dictWriter=csv.DictWriter(f,fieldnames=Isheader)#获取CSV的写操作对象,并且设置表头
dictWriter.writeheader()#将 fieldnames(表头) 写入 csv 的第一行;
dictWriter.writerows(ls)#写入剩下的行
3.对象元素列表的读写
"""
pickle提供了一个简单的持久化功能。可以将对象以文件的形式存放在磁盘上。
pickle模块只能在Python中使用,python中几乎所有的数据类型(列表,字典,集合,类等)都可以用pickle来序列化。
pickle序列化后的数据,可读性差,人一般无法识别。
pickle.dump(obj, file[, protocol])
序列化对象,并将结果数据流写入到文件对象中。参数protocol是序列化模式,默认值为0,表示以文本的形式序列化。protocol的值还可以是1或2,表示以二进制的形式序列化。
pickle.load(file)
反序列化对象。将文件中的数据解析为一个Python对象。
"""
import pickle
class Student:
def __init__(self,name,age,score):
self.name = name
self.age = age
self.score = score
ls =[]
ls.append(Student("张三",18,90))
ls.append(Student("李四",19,92))
ls.append(Student("王五",17,89))
with open('test.pkl',"wb") as f:
pickle.dump(ls,f,True)
with open('test.pkl',"rb") as f:
ls=pickle.load(f)
print(ls)
#[<__main__.Student object at 0x000002D8BCB40910>,
# <__main__.Student object at 0x000002D8BCB40790>,
# <__main__.Student object at 0x000002D8BCB42FD0>]
4.异常处理
三、数据库操作
1.创建连接对象