2、CSV文件操作
2.1、从csv中读取文件
import csv
def read_csv_index():
"""通过下标的方式"""
with open('stock.csv', 'r') as f:
# csv.reader()返回的是一个迭代器,这里的迭代器是列表
reader = csv.reader(f)
# 一般不想使用标题行使用next(reader)
next(reader) # 表示第一行开始,不是从第0行开始
for x in reader:
name = x[3]
volumn = x[-1]
print(name, volumn)
def read_csv_dict():
"""通过字典的方式读取csv文件"""
with open("stock.csv","r") as f:
# csv.DictReader()返回的是一个迭代器,这里的迭代器是字典
# DictReader()不会包含标题行的数据
reader = csv.DictReader(f)
for d in reader:
name = d['secShortName']
volumn = d['turnoverVol']
print(name, volumn)
if __name__ == '__main__':
read_csv_dict()
2.2、写入csv文件中
import csv
def write_csv():
# 第一行的标题
csv_headers = ['name', 'age', 'classroom']
values = [ ('zhangsan', 19, '508'),
('zhaosi', 20, '902'),
('wangwu', 32, '603')]
# newline参数默认值是newline='\n'
with open("test.csv",'w',encoding='utf-8',newline='') as f:
writer = csv.writer(f)
# 写入文件标题
writer.writerow(csv_headers)
# writerows()一次写入多行数据
writer.writerows(values)
def write_csv_dict():
"""使用字典的方式把数据写入csv文件中"""
csv_headers=['name','age','room']
# 列表中存放的是字典
values = [
{'name':'zhangsan','age':19,'room':'508'},
{'name':'zhaosi','age':20,'room':'902'},
{'name':'wangwu','age': 32,'room':'603'}
]
with open("test.csv", 'w', encoding='utf-8',newline='') as f:
writer= csv.DictWriter(f,csv_headers)
# 写入文件标题
writer.writeheader()
# writerows()一次写入多行数据
writer.writerows(values)
if __name__ == '__main__':
write_csv_dict()
2.3、不使用csv模块追加写入文件
def save_data(self,content,code):
with open("面上项目.csv","a+",encoding="utf-8") as f:
for i in content:
csv_list = []
csv_list.append(code) # 申请代码
csv_list.append(i[1]) # 项目名称
csv_list.append(i[3]) # 项目类别
csv_list.append(i[4]) # 依托单位
csv_list.append(i[5]) # 负责人
csv_list.append(i[7]) # 年份
f.write(','.join(csv_list))
f.write("\n")
print("完成",code,"申请编号")
pass