我得到的数据如下所示:
"1234"||"abcd"||"a1s1"
我正在尝试使用 Python 的 csv 读写器进行读写。 由于 csv 模块的分隔符仅限于单个字符,有没有办法干净地检索数据?我负担不起删除空列的费用,因为它是一个需要按时间限制的方式处理的海量数据集。任何想法都会有所帮助。
最佳答案
The docs并且实验证明只允许使用单字符定界符。
由于 cvs.reader
接受任何支持迭代器协议(protocol)的对象,您可以使用生成器语法将 ||
-s 替换为 |
- s,然后将此生成器提供给阅读器:
def read_this_funky_csv(source):
# be sure to pass a source object that supports
# iteration (e.g. a file object, or a list of csv text lines)
return csv.reader((line.replace('||', '|') for line in source), delimiter='|')
此代码非常有效,因为它一次在一个 CSV 行上运行,前提是您的 CSV 源生成的行不超过您的可用 RAM :)
关于python - 如何使用 python csv 模块拆分双管道分隔数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6352409/