Python 标准库-CSV 文件读写

目录

【1】读取CSV

【2】字典方式写入

【3】常用自定义


  • csv --- CSV 文件读写 — Python 3.10.11 文档

涉及方法:

  1. csv.DictReader
  2. csv.DictWriter

【1】读取CSV

def readToCsvFile(csv_path, u_delimiter=',', u_doublequote=True):
    read_file = []
    try:
        with open(csv_path, newline='', encoding='utf-8') as csvfile:
            reader = csv.DictReader(csvfile, delimiter=u_delimiter, doublequote=u_doublequote,quotechar="\"")
            for line in reader:
                read_file.append(line)
            return read_file
    except Exception as e:
        logging.error(f'readToCsvFile{csv_path}读取异常,error msg: {e}')
        return f'False,readToCsvFile{csv_path}读取异常'

示例文件:

Python 标准库-CSV 文件读写_第1张图片

  1. delimiter

delimiter定义了CSV文件的分割符,默认为“,”,通过自定义设置

如delimiter="|"

可以用来分割|类型的文件

  1. doublequote

此文件使用双引号转义字段中嵌入的双引号字符。 默认情况下,doublequote设置为True。 结果,在读取两个连续的双引号时会被解释为一个。

Python 标准库-CSV 文件读写_第2张图片

如果将doublequote设置为False,则连续的双引号将出现在输出中。

Python 标准库-CSV 文件读写_第3张图片

  1. quotechar

对于“0,0”中包含”,“的情况,可以使用quotechar="\"" 将”“内的数据作为一个整体,使用‘0,0’则将quotechar="'"即可

示例如上图中

【2】字典方式写入

def saveToCsvFile(csv_path, params, fieldnames,u_delimiter=','):
    try:
        with open(csv_path, 'w', newline='', encoding='utf-8') as csvfile:
            writer = csv.DictWriter(csvfile, fieldnames=fieldnames, delimiter=u_delimiter)
            writer.writeheader()
            # for line in params:
            writer.writerows(params)
    except Exception as e:
        logging.error(f'saveToCsvFile方法{csv_path}创建异常,error msg: {e}')
        return False
    else:
        return True

当delimiter为“|”时,doublequote与读取时配置一致

Python 标准库-CSV 文件读写_第4张图片

【3】常用自定义

参数

默认值

描述

delimiter

,

它是指用于分隔 CSV 文件中的值(或字段)的字符。

skipinitialspace

False

它控制定界符后面的空格的解释方式。 如果为True,则将删除初始空格。

lineterminator

\r\n

它是指用于终止行的字符序列。

quotechar

"

它指的是如果字段中出现特殊字符(如定界符),则将用于引用值的单个字符串。

quoting

csv.QUOTE_NONE

控制引号由作者生成或由读者识别的时间(其他选项请参见上文)。

escapechar

None

引用设置为引号时,它用于转义定界符的一字符字符串。

doublequote

True

控制字段内引号的处理。 当True时,在读取期间将两个连续的引号解释为一个,而在写入时,将嵌入数据中的每个引号字符写入为两个引号。

你可能感兴趣的:(Python,python,开发语言)