• 20201128-2 【自动化办公】读写csv文件


    Exercise 1
    import csv
    
    # 设置员工发展基金确认表路径
    source_path = './员工发展基金确认表.csv'
    # 设置存放拆分结果文件的文件夹路径
    result_path = './员工发展基金文件夹_demo/'
    
    # 打开员工发展基金确认表
    with open(source_path, 'r', encoding='utf-8', newline='') as source_file:
        # 将文件对象转换为DictReader对象
        source_csv = csv.DictReader(source_file)
        # 将csv对象的表头读取出来
        headers = source_csv.fieldnames
    
        # 循环处理确认表中除表头外的每一行数据
        for csv_row in source_csv:
            # 根据获取的员工名字拼接新文件名
            file_name = csv_row['姓名'] + '.csv'
            # 拼接新文件路径
            file_path = result_path + file_name
    
            # 创建新文件并添加数据
            with open(file_path, 'w', encoding='utf-8', newline='') as target_file:
                # 将文件对象转换为DictWriter对象
                target_writer = csv.DictWriter(target_file, fieldnames=headers)
                # 写入表头
                target_writer.writeheader()
                # 写入数据
                target_writer.writerow(csv_row)
    Exercise 2
    功能块代码展示
    首先来看第一个功能块——读取csv文件内容。
    
    第3、4行,设置了【员工发展基金确认表.csv】的文件路径。
    第8至13行,打开了【员工发展基金确认表.csv】文件,再读取该csv文件中的内容。
    
    然后是第二个功能块——将内容写入新的csv文件。
    
    第5、6行,设置存放拆分结果文件的文件夹路径。
    第17至20行,使用字符串拼接,得到了要写入内容的新csv文件的路径。
    第22至29行,创建并打开新csv文件,并将内容写入其中。
    import csv
    
    # 设置员工发展基金确认表路径
    source_path = './员工发展基金确认表.csv'
    # 设置存放拆分结果文件的文件夹路径
    result_path = './员工发展基金文件夹_demo/'
    
    # 打开员工发展基金确认表文件
    with open(source_path, 'r', encoding='utf-8', newline='') as source_file:
        # 将文件对象转换为DictReader对象
        source_csv = csv.DictReader(source_file)
        # 将csv文件的表头读取出来
        headers = source_csv.fieldnames
    
        # 循环处理确认表中除表头外的每一行数据
        for csv_row in source_csv:
        # 根据获取的员工名字拼接新文件名
            file_name = csv_row['姓名'] + '.csv'
            # 拼接新文件路径
            file_path = result_path + file_name
    
            # 创建新文件并添加数据
            with open(file_path, 'w', encoding='utf-8', newline='') as target_file:
                    # 将文件对象转换为DictWriter对象
                    target_writer = csv.DictWriter(target_file, fieldnames=headers)
                    # 写入表头
                    target_writer.writeheader()
                    # 写入数据
                    target_writer.writerow(csv_row)
    Exercise 3
    读取csv文件内容功能块
    # 导入csv模块
    import csv
    # 设置员工发展基金确认表路径
    source_path = './员工发展基金确认表.csv'
    # 打开员工发展基金确认表
    with open(source_path, 'r', encoding='utf-8', newline='') as source_file:
        # 将文件对象转换成DictReader对象
        source_csv = csv.DictReader(source_file)
        # 将csv文件的表头读取出来
        headers = source_csv.fieldnames
        # 循环打印除表头以外的所有数据
        for csv_row in source_csv:
            # 打印数据
            print(csv_row)

    现有列表:

    member_list = [['邱大仁'], ['徐小刚', '陈知枫'], ['王晴', '廖雨']]

    请你使用 for循环 和 writerow(row) 将列表内容分三行写入csv文件 'writerow_demo.csv' 中。

    # 导入csv模块
    import csv
    member_list = [
        ['邱大仁'],
        ['徐小刚', '陈知枫'],
        ['王晴', '廖雨']
        ]
    # 打开并创建'./writerow_demo.csv'文件,注意参数的设置,获取文件对象
    with open('./writerow_demo.csv', 'w', encoding='utf-8', newline='') as demo_file:
        # 将文件对象转换为writer对象
        csv_demo = csv.writer(demo_file)
        # 循环遍历列表中的元素
        for member in member_list:
            # 将列表中的元素写入csv文件中
            csv_demo.writerow(member)
     
    Exercise 4
    内容写入新的csv文件功能块
    现有字典:
    info_dict = {'姓名': '徐小刚', '工号': '1005', '员工发展基金': '100', '员工签字': ''}
    将其写入文件'徐小刚信息.csv'中。
    提示:最好提前把字典中的键(key)取出来存入列表中,然后在实例化DictWriter时,将其传给参数fieldnames。
    设置完参数还不够,要想写入表头,还得通过DictWriter对象调用方法writeheader()。
    # 导入csv模块
    import csv
    
    info_dict = {'姓名': '徐小刚', '工号': '1005', '员工发展基金': '100', '员工签字': ''}
    
    # 设置表头
    headers = ['姓名', '工号', '员工发展基金', '员工签字']
    # 创建并打开'./徐小刚信息.csv'
    with open('./徐小刚信息.csv', 'w', encoding='utf-8', newline='') as target_file:
        # 将文件对象转换为DictWriter对象
        target_writer = csv.DictWriter(target_file, fieldnames=headers)
        # 写入表头
        target_writer.writeheader()
        # 将字典写入csv文件
        target_writer.writerow(info_dict)
    Exercise 5
    回顾一下代码所需的关键知识点。
    ① csv是Python的内置模块,使用前需要导入这个模块。
    ② 最好在一开始就设置好要打开的csv文件的路径和存放拆分结果的文件夹的路径,因为这样可以简化代码,让代码看起来更加清晰易读。
    ③ 读取csv文件的时候使用with open() as ...(注意设置新学的参数newline),然后使用DictReader将文件对象转换为DictReader对象,最后再通过DictReader对象的属性fieldnames获取表头。
    ④ 通过for循环来遍历DictReader中的每一个元素,从而获取csv文件中除表头外的每一行内容。
    ⑤ 使用字典的取值和字符串拼接得到完整的文件路径,然后再打开这个文件。使用DictWriter将文件对象转换为DictWriter对象,必须要将之前得到的表头传给参数fieldnames。
    ⑥ 将表头写入csv文件时,还需要使用方法writeheader(),写入对应的每一行内容可以使用方法writerow()。
    重复上面的⑤和⑥,直至遍历完整个【员工发展基金确认表.csv】。
    # 导入csv模块
    import csv
    
    # 设置员工发展基金确认表的路径
    source_path = './员工发展基金确认表.csv'
    # 设置存放拆分结果文件的文件夹(员工发展基金文件夹)的路径。
    result_path = './员工发展基金文件夹/'
    
    # 打开员工发展基金确认表
    with open(source_path, 'r', encoding='utf-8', newline='') as source_file:
        # 将文件对象转换为DictReader对象
        source_csv = csv.DictReader(source_file)
        # 将csv文件的表头读取出来
        headers = source_csv.fieldnames
    
        # 循环处理确认表中除表头外的每一行数据
        for csv_row in source_csv:
            # 根据获取的员工名字拼接出新文件名
            file_name = csv_row['姓名'] + '.csv'
            # 拼接新文件路径
            file_path = result_path + file_name
    
            # 创建新文件并添加数据
            with open(file_path, 'w', encoding='utf-8', newline='') as target_file:
                # 将文件对象转换为DictWriter对象
                target_writer = csv.DictWriter(target_file, fieldnames=headers)
                # 写入表头
                target_writer.writeheader()
                # 写入数据
                target_writer.writerow(csv_row)
  • 相关阅读:
    Brain network involved in autonomic functions 与自主功能相关的大脑网络
    Brief summary of classical components of ERP 事件相关成分(ERP)经典成分小结
    ICA & Percentage Variance Account For (PVAF)
    数据处理中白化Whitening的作用图解分析
    Loadings vs eigenvectors in PCA 主成分分析(PCA)中的负荷和特征向量
    主成分分析(PCA)和独立成分分析(ICA)相关资料
    Sketch of heart and QRS complex 心脏及QRS波群简图
    Brain Network visulation in EEG 脑电网络可视化
    Phase Locking Value (PLV) 神经信号的锁相值
    ubuntu16.04下的一些基本操作笔记
  • 原文地址:https://www.cnblogs.com/azxsdcv/p/14053401.html
Copyright © 2020-2023  润新知