Dev*_*esh 7 python csv delimiter
我有数据看起来像:
"1234"||"abcd"||"a1s1"
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Python的csv阅读器和编写器进行读写.由于csv模块的分隔符仅限于单个字符,是否有任何方法可以干净地检索数据?我无法删除空列,因为它是一个庞大的数据集,需要以时间限制的方式处理.任何想法都会有所帮助.
Pav*_*pin 13
文档和实验证明只允许使用单字符分隔符.
由于cvs.reader接受任何支持迭代器协议的对象,您可以使用生成器语法将||-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='|')
Run Code Online (Sandbox Code Playgroud)
此代码非常有效,因为它一次只能在一行CSV行上运行,只要您的CSV源产生的行不超过可用RAM :)