📜  无需 CSV 模块即可读取 CSV 的Python程序(1)

📅  最后修改于: 2023-12-03 15:10:27.672000             🧑  作者: Mango

无需 CSV 模块即可读取 CSV 的 Python 程序

Python 中读取 CSV 文件通常要使用标准库中的 CSV 模块,但是其实还有一种更加简便的方法,就是使用 Python 内置的 open() 和 split() 函数。下面是一个例子。

代码
def read_csv_file(file_path, delimiter=","):
    """
    无需 CSV 模块即可读取 CSV 文件
    """
    with open(file_path, "r") as f:
        lines = f.read().strip().split("\n")
        headers = lines[0].split(delimiter)
        rows = []
        for line in lines[1:]:
            row = line.split(delimiter)
            rows.append(row)
        return headers, rows
使用方法

调用 read_csv_file 函数时,需要传入两个参数:CSV 文件路径和 CSV 文件中列与列之间的分隔符。默认情况下分隔符是逗号,如果你的 CSV 文件使用了其他分隔符,可以在调用时指定。

headers, rows = read_csv_file("test.csv")
for row in rows:
    print(row)
分析

这个函数比较简单,我们来分析一下它的具体实现。

  1. 首先使用 open 函数打开 CSV 文件,而后读取文件的所有内容并存储为一个字符串(行与行之间用换行符分隔)。

  2. 使用 strip 函数去掉字符串的首尾空白符。

  3. 使用 split 函数将字符串按行分割成一个列表,并存储到变量 lines 中。

  4. 将第一行即标题行按照列与列之间的分隔符拆分成一个列表,存储到变量 headers 中。

  5. 从第二行开始,遍历每一行,在每一行内按照列与列之间的分隔符将行数据拆分成一个列表,存储到变量 rows 中。

  6. 最后返回变量 headersrows

值得注意的是,如果你的 CSV 文件中包含逗号、引号等特殊符号,还需要加上对应的转义处理,这里就不再细讲了。