目录
【1】读取CSV
【2】字典方式写入
【3】常用自定义
-
csv --- CSV 文件读写 — Python 3.10.11 文档
涉及方法:
- csv.DictReader
- 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_fileexcept Exception as e:logging.error(f'readToCsvFile{csv_path}读取异常,error msg: {e}')return f'False,readToCsvFile{csv_path}读取异常'
示例文件:
- delimiter
delimiter定义了CSV文件的分割符,默认为“,”,通过自定义设置
如delimiter="|"
可以用来分割|类型的文件
- doublequote
此文件使用双引号转义字段中嵌入的双引号字符。 默认情况下,doublequote设置为True。 结果,在读取两个连续的双引号时会被解释为一个。
如果将doublequote设置为False,则连续的双引号将出现在输出中。
- 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 Falseelse:return True
当delimiter为“|”时,doublequote与读取时配置一致
【3】常用自定义
参数 | 默认值 | 描述 |
delimiter | , | 它是指用于分隔 CSV 文件中的值(或字段)的字符。 |
skipinitialspace | False | 它控制定界符后面的空格的解释方式。 如果为True,则将删除初始空格。 |
lineterminator | \r\n | 它是指用于终止行的字符序列。 |
quotechar | " | 它指的是如果字段中出现特殊字符(如定界符),则将用于引用值的单个字符串。 |
quoting | csv.QUOTE_NONE | 控制引号由作者生成或由读者识别的时间(其他选项请参见上文)。 |
escapechar | None | 引用设置为引号时,它用于转义定界符的一字符字符串。 |
doublequote | True | 控制字段内引号的处理。 当True时,在读取期间将两个连续的引号解释为一个,而在写入时,将嵌入数据中的每个引号字符写入为两个引号。 |