1

Python 2.7 で urllib.urlopen を使用して、外部 Web サーバーにある csv ファイルを読み取ります。

# Try & Except statements removed for clarity
import urllib
import csv
url = ...
csv_file = urllib.urlopen(url)
for row in csv.reader(csv_file):
    do_something()

最近更新されたものを除いて、100以上のファイルはすべて正常に読み取ることができます。

Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?

ファイルはここからアクセスできます。私のテキスト エディターによると、そのモードは Mac (CR) であり、他のファイルの Windows (CRLF) とは対照的です。

このスレッドに基づいて、python urlopen は改行のすべての形式を正しく処理することがわかりました。したがって、問題は別の場所から発生する可能性があります。私には手がかりがありません。ファイルは、すべてのテキスト エディターとスプレッドシート エディターで問題なく開きます。

問題を診断する方法を知っている人はいますか?

* 編集 *

ファイルの作成者は、このような問題を経験したのは私だけではないことを電子メールで知らせてくれました。したがって、彼はもう一度作ることにしました。上記のコードは正常に動作するようになりました。残念ながら、新しいファイルを使用すると、問題を再現できなくなり、解決策が適切にテストされます。

質問を締めくくる前に、解決策を見つけてここに投稿するために時間を費やしてくれたすべてのスタッカーに感謝したいと思います.

4

3 に答える 3

1

破損した.csvファイルである可能性がありますか?それ以外の場合、このコードは完全に実行されます。

#!/usr/bin/python

import urllib
import csv

url = "http://www.football-data.co.uk/mmz4281/1213/I1.csv"
csv_file = urllib.urlopen(url)

for row in csv.reader(csv_file):
  print row

.csvファイルのJFSebastianへのクレジット

ただし、特定の.csvファイルを私たちと共有することを検討することをお勧めしますか?したがって、エラーの再作成を試みることができます。

于 2013-01-19T14:19:05.983 に答える
1

次のコードはエラーなしで実行されます。

#!/usr/bin/env python
import csv
import urllib2

r = urllib2.urlopen('http://www.football-data.co.uk/mmz4281/1213/I1.csv')
for row in csv.reader(r):
    print row
于 2013-01-19T11:08:17.183 に答える