python入门篇6:文本/CSV/Excel文件操作

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

猜你喜欢

转载自blog.csdn.net/u013089490/article/details/88892642