2013-12-13 11 views

Antwort

27

setzen "file://" Gerade vor dem Weg

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

Funktioniert perfekt, danke! –

+1

@JasonBaldwin: Es könnte brechen, wenn der Pfad Prozentzeichen enthält. Verwenden Sie 'urllib.quote()', um es zu vermeiden: ''file: //' + urllib.quote (abspath (Pfad))' – jfs

+0

Das funktioniert nicht, wenn der Pfad relativ ist. –

1

In urllib.urlopen Methode: Wenn der URL-Parameter einer Regelung nicht Kennung haben, wird es öffnet sich eine lokale Datei. aber das urllib2 verhält sich nicht so.

So kann die Urllib2-Methode es nicht verarbeiten.

Es ist immer gut, die Schema-ID 'file: //' in den Methodenaufruf für den URL-Parameter aufzunehmen.

+0

Danke für die Erklärung! –

+0

Andererseits wird 'open'' 'file: //' prefix nicht verstehen. –

0

Ich hatte das gleiche Problem und tatsächlich, habe ich gerade festgestellt, dass wenn Sie die Quelle der Seite herunterladen, und öffnen Sie es dann auf Chrome Ihr Browser zeigt Ihnen den genauen lokalen Pfad auf der URL-Leiste. Viel Glück!