2017-02-23 2 views
0

Ich möchte dieses Skript für die Verwendung von Offline-Dateien ändern, wenn ich die Dateien von URLs herunterladen, aber wenn die gleiche Datei, wie ich von Festplatten abziehe, nicht geöffnet , jemand hilft mir zu verstehen, warum und wie zu tun, danke.Verwendung von Dateien auf Festplatten anstelle von URL mit Python

def INDEX(): 
    TVLIST('https://www.*********/playlist/*******/test.m3u') 


def TVLIST(url): 
    try: 
     m3u = getHtml(url) 
     parsem3u(m3u) 
    except: 
     addDir('Nothing found', '', '', '', Folder=False) 
    xbmcplugin.endOfDirectory(int(sys.argv[1])) 

urlopen = urllib2.urlopen 
Request = urllib2.Request 

def getHtml(url, referer=None, hdr=None, data=None): 
    if not hdr: 
     req = Request(url, data, headers) 
    else: 
     req = Request(url, data, hdr) 
    if referer: 
     req.add_header('Referer', referer) 
    if data: 
     req.add_header('Content-Length', len(data)) 
    response = urlopen(req) 
    if response.info().get('Content-Encoding') == 'gzip': 
    buf = StringIO(response.read()) 
    f = gzip.GzipFile(fileobj=buf) 
    data = f.read() 
    f.close() 
else: 
    data = response.read()  
response.close() 
return data 

def parsem3u(html, sitechk=True): 
    match = re.compile('#.+,(.+?)\n(.+?)\n').findall(html) 
    txtfilter = txtfilter = GETFILTER() 
    txtfilter = txtfilter.split(',') if txtfilter else [] 
    txtfilter = [f.lower().strip() for f in txtfilter] 
    i = 0 
    count = 0 
    for name, url in match: 
     status = "" 
     url = url.replace('\r','') 
     if not txtfilter or any(f in name.lower() for f in txtfilter): 
      if sitechk: 
       if i < 5: 
        try: 
         siteup = urllib.urlopen(url).getcode() 
         status = " [COLOR red]offline[/COLOR]" if siteup != 200 else " [COLOR green]online[/COLOR]" 
        except: status = " [COLOR red]offline[/COLOR]" 
        i += 1 
      addPlayLink(name+status, url, 3, uiptvicon) 
      count += 1 
    return count 

ich dachte, war genug, um den lokalen Pfad zu setzen

def INDEX(): 
TVLIST(r'c:\Desktop\IPTVLIST\M3U\playlist\test.m3u') 

, der erklärt, warum es nicht funktioniert und wie kann ich tun? Danke

+0

Was ist der Fehler? – putonspectacles

+0

Sie können wahrscheinlich eine 'file: //' URI verwenden. Vgl. https://blogs.msdn.microsoft.com/ie/2006/12/06/file-uris-in-windows/ – languitar

+0

das Skript der Antwort ist nichts gefunden kein Fehlerprotokoll – user7611820

Antwort

0

Wie von @languitar in den Kommentaren vorgeschlagen haben Sie file:// natürlich sollte es für Windows funktionieren, aber auf eine Plattform wie Android verschieben, haben Sie verschiedene Dateisystem dort, Sie haben keine C Laufwerk. Stelle also sicher, dass du einen alternativen Ort auf dem Android hast.

Verwandte Themen