python におけるCSVデータ読み込み時の文字コードエラー


Python（Flask）におけるCSVファイルの読み込みで困っています。

Shift_JISで保存され、データがダブルクオテーションで囲まれているCSVデータがあります。  
以下の２パターンでファイルを開き、中のCSVをカンマ分割して取得する部分でエラーになります。  
ある行になると必ず下記エラーがでるのですが、その行のデータをみても、一見おかしいところはありません。  
また、PythonのIDLEで同様に処理するとエラーが無いのですが、Flaskにて実行するとエラーになります。  
もし原因がありそうでしたらよろしくお願いします。

（１）

[code]

    fo=codecs.open(f,"rb",'shift_jis')
    for line in fo:
        d=line.split(",")
    
[/code]

エラー文  
**UnicodeDecodeError: 'shift_jis' codec can't decode bytes in position
298-299: illegal multibyte sequence**

（２）

[code]

    fo=open(f,"rb")
    for line in fo:
        d=line.split(",")
    
[/code]

エラー文  
**ProgrammingError: You must not use 8-bit bytestrings unless you use a
text_factory that can interpret 8-bit bytestrings (like text_factory = str).
It is highly recommended that you instead just switch your application to
Unicode strings.**




Excel 等の出力ファイルでしたら改行コードが違う可能性があるので、

[code]

    fo = open(f, 'rU')
    for line in fo:
        d = line.decode('utf-8').split(',')
    
[/code]

を試してみてはいかがでしょうか。  
オプション`rU`はユニバーサル改行のテキストモードで読み込む（そのファイルが用いている改行コードで読み込む）ことができます。

