zoukankan      html  css  js  c++  java
  • python csv文件打开错误:_csv.Error: line contains NULL byte

    正常的csv文件读取如下:

    #coding:utf-8
    import csv
    csvfilename = 'demo.csv'
    
    
    print u'################获取某一行'
    with open(csvfilename, 'rb') as csvfile:
        reader = csv.reader(csvfile)
        rows = [row for row in reader]
    print rows[0], rows[1], rows[2], rows[3]
    
    print u'################获取某一列'
    with open(csvfilename,'rb') as csvfile:
        reader = csv.reader(csvfile)
        column0 = [row[0] for row in reader]
    with open(csvfilename, 'rb') as csvfile:
        reader = csv.reader(csvfile)
        column1 = [row[2] for row in reader]
    
    print column0, column1
    s = [1,2,3]
    for i in column0:
        print type(i)
    # print u'sum:',sum(column0)
    new_column0 = column0.pop(0)
    print u'删除的元素为:', new_column0
    print u'删除后的列表:', column0
    print type(column0)
    for i in column0:
        print type(i)

    读取一个   ucs-2 le 格式(notepa++打开csv)的csv就会报错:  Python CSV error: line contains NULL byte   参考了这个文章里面的内容

    https://stackoverflow.com/questions/4166070/python-csv-error-line-contains-null-byte

    代码如下:

    #coding:utf-8
    from __future__ import division
    import csv
    import codecs
    import xlwt
    import pandas as pd
    # twsfilename = "mem.csv"#134列
    twsfilename = "tws.csv"#123列
    
    #读取行
    print u'################获取某一行'
    with codecs.open(twsfilename, 'rb', "utf-16") as csvfile:
        reader = csv.reader(csvfile)
        column1 = [row for row in reader]
        print column1[1][0].split("    ")
        print type(column1[1][0].split("    "))
    
    print u'################获取某一列'
    with codecs.open(twsfilename, 'rb', "utf-16") as csvfile:
        reader = csv.reader(csvfile, delimiter='	')
        reader.next()#向下跳一行 这行可以注释掉  主要为了去掉标题行
        column1 = [row[1] for row in reader]
        print column1
        print "max:",max(column1)
        s = 0
        for i in column1:
            x = float(i)
            s += x
        print "sum:",s,"count:",len(column1)
        # round (s / len(column1), 3)
        print "avg",round (s / len(column1), 3)

     

    最后感谢大神  参考了很多都搞不定 什么.replace('','')啊 另存啊 都搞不定  给你几百个这种csv你难道一个个另存啊!

    获取list后怎么存成svs 看这个 http://www.cnblogs.com/hanxing/p/6905094.html

  • 相关阅读:
    iOS下的四舍五入
    下载私有库 classdump命令 privateFrameworks
    苹果账号下添加测试设备
    新的Mac下如何配置开发者账号信息
    open开发笔记
    C#面向对象基础抽象类
    C#面向对象基础继承
    C#面向对象基础接口
    C#面向对象基础对象引用
    COJ1165(Nearest Numbers)
  • 原文地址:https://www.cnblogs.com/hanxing/p/6906268.html
Copyright © 2011-2022 走看看