reading csv file without for

前端 未结 8 1707
孤街浪徒
孤街浪徒 2020-12-10 04:28

I need to read a CSV file in python.

Since for last row I receive a \'NULL byte\' error I would like to avoid using for keyword but the while.

Do you know ho

8条回答
  •  半阙折子戏
    2020-12-10 05:11

    I don't have an answer, but I can confirm the problem, and that most answers posted don't work. You cannot catch this exception. You cannot test for if line. Maybe you could check for the NULL byte directly, but I'm not swift enough to do that... If it is always on the last line, you could of course skip that.

    import csv
    FH = open('data.csv','wb')
    line1 = [97,44,98,44,99,10]
    line2 = [100,44,101,44,102,10]
    for n in line1 + line2:
        FH.write(chr(n))
    FH.write(chr(0))
    FH.close()
    FH = open('data.csv')
    reader = csv.reader(FH)
    for line in reader:
        if '\0' in line:  continue
        if not line:  continue
        print line
    
    $ python script.py 
    ['a', 'b', 'c']
    ['d', 'e', 'f']
    Traceback (most recent call last):
      File "script.py", line 11, in 
        for line in reader:
    _csv.Error: line contains NULL byte
    

提交回复
热议问题