2011-06-27 1 views
0

ループ内のcsvファイルを読み込んでいます。問題は、いくつかのNUll値がcsvファイルに挿入されており、forループがそれらの行を読み込むときにエラーが発生することです。行内にヌル値があってもforループの行を読み続ける

私のコードは次のとおりです。読者の行のための

reader = csv.reader(f, delimiter=';',quotechar = '"') 
    data = StringIO.StringIO() 
     for line in reader: 
      data.write("\"" + str(line[i].encode('UTF-8')) + "\"") 
        ....... 


and the error is : 

: _csv.Error:私は"try and except"を使用した場合の行がNULLバイト

が含まれているが、できるだけ早くそれがNull値を取得するとして、それは除いて の内側に入り、ファイル内の他の行の読み取りを継続しません。一方、forループはnull値をスキップして、ファイル内の他の行の読み込みを続けます。

私のサンプルデータは、次のとおりです。csv.readerがそれらを取得する前に、これはラインからnulsを削除

"a";"b";"c" 
NulNulNul "f";"v";"x" 
"aaa";"fb";"a" 
"abb";"aab";"aac" 

と私はループの後のデータになりたい、

"a";"b";"c" 
"f";"v";"x" 
"aaa";"fb";"a" 
"abb";"aab";"aac" 

答えて

2
reader = csv.reader((line.replace('\0','') for line in f) , delimiter=';',quotechar = '"') 

+0

うわー..ありがとう、たくさん..それは完璧に働いた... –

関連する問題