Ответ 1
Просто поставьте "file://"
перед дорогой
>>> import urllib2
>>> urllib2.urlopen("file:///etc/debian_version").read()
'wheezy/sid\n'
Я пытаюсь открыть локальный файл, используя urllib2. Как я могу это сделать? Когда я пробую следующую строку с urllib:
resp = urllib.urlopen(url)
он работает правильно, но когда я переключу его на:
resp = urllib2.urlopen(url)
Я получаю:
ValueError: unknown url type: /path/to/file
где этот файл определенно завершает работу.
Спасибо!
Просто поставьте "file://"
перед дорогой
>>> import urllib2
>>> urllib2.urlopen("file:///etc/debian_version").read()
'wheezy/sid\n'
В методе urllib.urlopen: если параметр URL не имеет идентификатора схемы, он откроет локальный файл. но urllib2 не ведет себя так.
Таким образом, метод urllib2 не может обработать его.
Всегда полезно включать идентификатор схемы file://'в оба метода вызова для параметра url.
У меня была такая же проблема, и на самом деле я просто понял, что если вы загрузите источник страницы, а затем откройте ее на Chrome, ваш браузер покажет вам точный локальный путь в строке url. Удачи!