首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

读较复杂的CSV文件,求思想,该如何解决

2012-03-14 
读较复杂的CSV文件,求思想此CSV文件中,某个单元格可能包含逗号、双引号、换行,想把它们读出来放在二维数组里

读较复杂的CSV文件,求思想
此CSV文件中,某个单元格可能包含逗号、双引号、换行,想把它们读出来放在二维数组里

例:
0,BeiJing,"""False"",one
""True"",two"
1,ShangHai,"""False"",one
""True"",two"

求指点

[解决办法]

Python code
import csvimport codecsimport cStringIOclass ReadCSV(object):    def __init__(self):        self.coding = "mbcs"            def ReadCSVDatas(self, filename):        class UnicodeReader:            def __init__(self, f, dialect=csv.excel, encoding="mbcs", **kwds):                class UTF8Recoder:                    def __init__(self, f, encoding):                        self.reader = codecs.getreader(encoding)(f)                                            def __iter__(self):                        return self                                        def next(self):                        return self.reader.next().encode("utf-8")                                    f = UTF8Recoder(f, encoding)                self.reader = csv.reader(f, dialect=dialect, **kwds)                            def next(self):                row = self.reader.next()                return [ unicode(s, "utf-8") for s in row ]                        def __iter__(self):                return self                items = []        datas = UnicodeReader( f = file( filename, "r" ), encoding = self.coding )                for data in datas:            items.append(data)                        return items 

热点排行