2013-11-26 179 views
-2

這裏是一個腳本:IndexError:列表索引超出範圍123

import requests 
import subprocess 
import json 
import sys 
import threading 
import time 
from Queue import Queue 

numberOfViewers = int(sys.argv[1]) 
builderThreads = int(sys.argv[2]) 
startTime = time.time() 
numberOfSockets = 0 
concurrent = 25 
urls = [] 
urlsUsed = [] 

def getURL(): # Get tokens 
    output = subprocess.Popen(["livestreamer", "twitch.tv/CHANNEL_NAME", "-j"], stdout=subprocess.PIPE).communicate()[0] 
    return json.loads(output)['streams']['worst']['url'] # Parse json and return the URL parameter 

def build(): # Builds a set of tokens, aka viewers 
    global numberOfSockets 
    global numberOfViewers 
    while True: 
     if numberOfSockets < numberOfViewers: 
      numberOfSockets += 1 
      print "Building viewers " + str(numberOfSockets) + "/" + str(numberOfViewers) 
      urls.append(getURL()) 

def view(): # Opens connections to send views 
    global numberOfSockets 
    while True: 
     url=q.get() 
     requests.head(url) 
     if (url in urlsUsed): 
      urls.remove(url) 
      urlsUsed.remove(url) 
      numberOfSockets -= 1 
     else: 
      urlsUsed.append(url) 
     q.task_done() 

if __name__ == '__main__': 
    for i in range(0, builderThreads): 
     threading.Thread(target = build).start() 

    while True: 
     while (numberOfViewers != numberOfSockets): # Wait until sockets are built 
      time.sleep(1) 

     q=Queue(concurrent*2) 
     for i in range(concurrent): 
      try: 
       t=threading.Thread(target=view) 
       t.daemon=True 
       t.start() 
      except: 
       print 'thread error' 
     try: 
      for url in urls: 
       print url 
       q.put(url.strip()) 
       q.join() 
     except KeyboardInterrupt: 
      sys.exit(1) 

這裏是一個錯誤:

Traceback (most recent call last): 
    File "LINKTOFILEHERE", line 9, in <module> 
    numberOfViewers = int(sys.argv[1]) 
IndexError: list index out of range 
+4

該腳本希望你傳遞命令行參數:'python Twitch.py​​ 10 20'' –

+0

是的,有一個腳本和一個錯誤,所以呢? – 0xc0de

+0

是的,但它說「語法錯誤」 – user3035522

回答

1

那是因爲這是一個需要命令行參數的腳本:

python Twitch.py 10 10 
        ^Number of threads 
       ^Number of viewers 
     ^Name of file 
+0

是的,但它說「語法錯誤」http://clip2net.com/s/6fQPTe – user3035522

+0

@ user3035522那麼,就像你可以自己看,那是在一個單獨的文件中一起。 –

+0

不理解你:s – user3035522

相關問題