LoginSignup
0
0

More than 1 year has passed since last update.

MeCabのタブ区切りの右のCSVフィールドどうやって区切ってる?

Posted at

うちではこういうの書いて使ってるというメモ。

mecab_toolbox.py
#! /bin/python
# coding: utf-8

from io import StringIO
import csv


def csv_splitter(csv_line, empty_elem=''):
    fin = StringIO(str(csv_line))     # バイナリにしないとcsvのnextで怒られる
    splitted_line = next(csv.reader(fin))
    fin.close()
    ret = []
    for elem in splitted_line:
        if elem:
            ret.append(elem)
        else:
            ret.append(empty_elem)
    return ret


def csv_joinner(listed_line):
    ret = []
    for elem in listed_line:
        elem = elem.replace('"', '""')
        if ',' in elem:
            elem = '"' + elem + '"'
        ret.append(elem)
    return ','.join(ret)


if __name__ == '__main__':
    line = '1,2,3,abc,"ab,c"'
    print(line)
    line = csv_splitter(line)
    print(line)
    line = csv_joinner(line)
    print(line)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0