python - 在python中解析双管道分隔文件

标签 python python-3.x csv parsing

<分区>

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

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"必须是 1 个字符的字符串

我正在使用 Python 3.7。

最佳答案

csv documentation

A one-character string used to separate fields. It defaults to ','.

这是一个硬约束。我能想到的一种技巧是在内容字符串被 csv.reader 读取之前对内容字符串进行一些修改。您可以在输入文件的每一行上使用 replace('||', '|') 方法,然后再将其作为参数传递给 csv.reader

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

关于python - 在python中解析双管道分隔文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58707332/

相关文章:

python - 使用 python 从 OpenCV 中的视频自动捕获图像

Python:如何遍历文件并用 "censored"替换诅咒词

python-3.x - psycopg2.DataError : invalid input syntax for type double precision: "NULL"

python - 如何使用Python 2.7以正确的形式将txt导出到csv?

python - 在源代码中查找 bool 值的隐式强制转换

python - 将 XML 转换为 CSV

python - 从 ipywidgets.widgets.SelectMultiple 获取值

python - 在线程中更改 QObject 样式表时出错

python - TypeError : 'int' object is not iterable. 为什么会出现此错误?请帮忙

python-3.x - Django Rest Framework 在 Azure 上非常慢