• CSV文件在Python中的几种处理方式


    Comma Separated Values,简称CSV,它是一种以逗号分隔数值的文件类型。在数据库或电子表格中,它是最常见的导入导出格式,它以一种简单而明了的方式存储和共享数据,CSV文件通常以纯文本的方式存储数据表。今天,我将给大家分享在Python中如何操作CSV文件。

    一、数据源

    首先,我们来看看本次操作的数据源,图1 CSV文件是在Excel中打开的,图2 CSV文件是在Notepad++中打开的,我们在图2中可以看到数值之间是以逗号分隔开的,每行末尾是CR回车符和LF换行符(请注意,Linux系统以LF结尾,MacOS系统以CR结尾)。

    二、使用Python基本语法读写CSV文件

    使用基本语法读取CSV文件中的数据大概思路是:获取文件对象,读取表头,按逗号分隔符拆分表头字段,使用for循环语句获取表体记录数据,拆分后再次写入另一张CSV文件中(如果要将数据写入xls*格式的文件中,请参考前期公众号文章),步骤如下:

    Step 1:导入必要模块,获取输入输出文件路径。

    import sys

    infile = sys.argv[1]

    outfile = sys.argv[2]

    Step 2:使用open内置函数获取文件对象。

    with open(infile, "r", newline='') as fr, open(outfile, "w", newline='') as fw:

    Step 3:使用文件对象的readline方法或者迭代器的next方法读取表头(文件对象是一个迭代器对象,支持迭代协议),使用str.split方法对表头进行拆分(注意,要使用strip函数去掉尾部换行符)。

    header = next(fr)

    header = header.strip()

    header_list = header.split(",")

    Step 4:既然表头已经查分好了,我们需要将表头写入文件对象中(注意尾部需要添加一个换行符哦)。

    fw.write(",".join(map(str, header_list)) + " ")

    当然,上面的代码也可以这么写:

    print(*header_list, sep=",", file=fw)

    Step 5:使用for循环读取表体数据,并将其拆分成列表写入到文件中。

    for row in fr:

    row = row.strip()

    row_list = row.split(",")

    fw.write(",".join(map(str, header_list)) + " ")

    以上步骤完成后,在命令提示符中输入:

    python csvrw.py inputfile.csv outputfile.csv

    输入输出csv文件名称以及脚本名称请自定义,以上只是举例说明。

    以上代码如下:

    三、使用csv模块读写CSV文件

    csv模块是Python内置的一个模块,它考虑了csv文件中的各种复杂情况,平时处理文件基本上使用此模块,下面来看看csv模块处理csv文件的方式,其步骤如下:

    Step 1:首先,导入必要模块,获取输入输出文件路径。

    import sys

    import csv

    infile = sys.argv[1]

    outfile = sys.argv[2]

    Step 2:使用open内置函数获取文件对象。

    with open(infile, "r", newline='') as incsv, open(outfile, "w", newline='') as outcsv:

    Step 3:使用csv模块中的reader和writer函数分别获取reader和writer对象。

    freader = csv.reader(incsv, delimiter=",")

    fwriter = csv.writer(outcsv, delimiter=",")

    Step 4:使用for循环语句读取和写入数据。

    for rowlist in freader:

    fwriter.writerow(rowlist)

    以上步骤完成后,在命令提示符中输入相应命令即可(请参照)

    代码如下:

    四、使用pandas读写CSV文件

    pandas库是一个强大的数据处理和数据分析库,使用pandas处理csv文件更简单,其步骤如下:

    Step 1:首先,导入必要模块,获取输入输出文件路径。

    import sys

    import pandas as pd

    infile = sys.argv[1]

    outfile = sys.argv[2]

    Step 2:使用pandas的read_csv方法将数据存储到一个DataFrame对象中。

    dataframe = pd.read_csv(infile)

    Step 3:然后使用DataFrame的to_csv方法将其输出到另一张csv表中。

    dataframe.to_csv(outfile, index=False)

    以上步骤完成后,在命令提示符中输入相应命令即可(请参照)

    代码如下:

    •  
     
  • 相关阅读:
    C#模拟百度登录并到指定网站评论回帖(一)
    4张图看明白用户、权限和租户的关系
    我的微服务之路
    IT部门不应该是一个后勤部门
    一个值只有0和1的字段,到底要不要建索引?
    论程序员的自我修养
    RBAC权限管理系统数据模型
    有史以来功能最全,使用最简单的excel导入/导出工具
    一个完全平均分布的固定长度随机数发生器
    基于WCF的RESTFul WebAPI如何对传输内容实现压缩
  • 原文地址:https://www.cnblogs.com/valorchang/p/11320145.html
Copyright © 2020-2023  润新知