首页 > 解决方案 > 在python中解析双管道分隔文件

问题描述

需要解析一个由||分隔的数据文件 数据如下

Customer No||Company Code||Name||Address||Telephone||Fax||Email||Term of Payment||Block||Created On||Last Changed On
000111111||A75||My Company||My Address||01-11111111||01- 11111111||test@test.com||A075||||1.11.2019||11.11.2019

使用 csv 模块,解析的代码是

csv_reader = csv.reader(csv_file, delimiter='||')

并在执行时出现以下错误

TypeError: "delimiter" must be a 1-character string

我正在使用 Python 3.7。

标签: pythonpython-3.xcsvparsing

解决方案


csv文档

用于分隔字段的单字符字符串。它默认为“,”。

这是一个硬约束。我能想到的技巧之一是在被csv.reader. 您可以replace('||', '|')在输入文件的每一行使用方法,然后将其作为参数提供给csv.reader.

input_file  = open('test.csv', "rb")
reader = csv.reader((line.replace('||', '|') for line in input_file), delimiter='|')

推荐阅读