多列表上的多处理或多线程

2024-09-28 20:19:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助我的脚本迭代多个不同的线程列表

我已经尝试了很多方法,但是我不知道我的线程如何在不冲突的情况下异步迭代同一个列表或者执行相同的数组

  • pass.txt包含类似pythonnewbie:pass123456的行
  • proxy.txt包含类似128.14.52.163:8080的行

我在所有测试中收到的主要错误是“UnboundLocalError”

我需要找到一种异步方法,使线程将pro计数器恢复到-1

pass.txt包含22257行,proxy.txt包含4516行,当代理列表到达末尾时停止

#!/usr/bin/env python
#!-*- coding:utf-8 -*-

import os, sys, time, random
import Queue
from threading import Thread, ThreadError

combolist = open('/pass.txt').read().splitlines()
proxylist = open('/proxy.txt').read().splitlines()

proxycut = [x.split(':', 1)[0] for x in proxylist]
portcut = [x.split(':', 1)[1] for x in proxylist]
combomailcut = [x.split(':', 1)[0] for x in combolist]
combopasscut = [x.split(':', 1)[1] for x in combolist]

pro = -1
orp = -1
valid = -1

def brunch(pro, orp):
    try:
        PROXY = proxycut[pro]
        PORT = int(portcut[pro])
    except IndexError:
        pro = -1
    ACCOUNT  = combomailcut[orp]
    PASSWORD = combopasscut[orp]
    print("Proxy traffic: {}:{}".format(PROXY, PORT))
    print("On teste avec {}:{}".format(ACCOUNT, PASSWORD))



for x in combomailcut:
    pro += 1
    orp += 1
    try:
        t = Thread(target=brunch, args=(pro, orp))
        t.start()
    except IndexError:
        pro = -1
        pro += 1
        t = Thread(target=brunch, args=(pro, orp))
        t.start()

我希望一个很好的专业计数器返回到-1如果UnboundError是达到,但它不工作

On teste avec prinwesla:cyy813zRvR
 Proxy traffic: 187.121.178.53:20183
On teste avec agsaylor:Annabell01
Exception in thread Thread-4517:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "dofus.py", line 28, in brunch
    print("Proxy traffic: {}:{}".format(PROXY, PORT))
UnboundLocalError: local variable 'PROXY' referenced before assignment

Exception in thread Thread-4520:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "dofus.py", line 28, in brunch
    print("Proxy traffic: {}:{}".format(PROXY, PORT))
UnboundLocalError: local variable 'PROXY' referenced before assignment

Tags: inpyselftxtforusrlinethread