2017-02-23 62 views
0

我想修改這個腳本來使用脫機文件,如果我從url下載文件的作品,但是如果我從硬盤退出的文件沒有打開,有人幫助我理解爲什麼以及如何去做,謝謝。使用硬盤上的文件而不是使用python的url

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 

我想,就足以把本地路徑

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

誰解釋了爲什麼它不工作,我該怎麼辦?謝謝

+0

錯誤是什麼? – putonspectacles

+0

你可以使用'file://'URI。參看https://blogs.msdn.microsoft.com/ie/2006/12/06/file-uris-in-windows/ – languitar

+0

答案的腳本是沒有發現沒有錯誤日誌 – user7611820

回答

0

由@languitar在評論中建議你將有file://這當然它應該適用於Windows,但移動到像android這樣的平臺,你有不同的文件系統那裏,你沒有C驅動器。所以請確保你在android上獲得了另一個位置。

相關問題