Подтвердить что ты не робот

Открытие локального файла Работает с urllib, но не с urllib2

Я пытаюсь открыть локальный файл, используя urllib2. Как я могу это сделать? Когда я пробую следующую строку с urllib:

resp = urllib.urlopen(url)

он работает правильно, но когда я переключу его на:

resp = urllib2.urlopen(url)

Я получаю:

ValueError: unknown url type: /path/to/file

где этот файл определенно завершает работу.

Спасибо!

4b9b3361

Ответ 1

Просто поставьте "file://" перед дорогой

>>> import urllib2
>>> urllib2.urlopen("file:///etc/debian_version").read()
'wheezy/sid\n'

Ответ 2

В методе urllib.urlopen: если параметр URL не имеет идентификатора схемы, он откроет локальный файл. но urllib2 не ведет себя так.

Таким образом, метод urllib2 не может обработать его.

Всегда полезно включать идентификатор схемы file://'в оба метода вызова для параметра url.

Ответ 3

У меня была такая же проблема, и на самом деле я просто понял, что если вы загрузите источник страницы, а затем откройте ее на Chrome, ваш браузер покажет вам точный локальный путь в строке url. Удачи!