【发布时间】:2022-01-05 00:52:22
【问题描述】:
我正在尝试在 python 中使用线程,我对线程很陌生。我希望线程从同一个文件中读取随机行,但所有线程都读取同一行。所以我试图阅读的文件的所有行都是 email:pass:another_line 格式的。我希望用多个线程从同一个文件中读取不同的行,但它用多个线程读取同一行。 因此,例如 1 个线程将返回 line1,第二个线程将返回 line2 但它的随机行。
import random
import threading
def email_pass_token():
global email, pass2, token
file = open("testing/pokens.csv").read().splitlines()
acc_str = random.choice(file)
num_lines = sum(1 for _ in file)
print(num_lines)
email = ":".join(acc_str.split(":", 1)[:1])
pass2 = ":".join(acc_str.split(":", 2)[:2][1:])
token = ":".join(acc_str.split(":", 3)[:3][2:])
email_pass_token()
def gen_acc():
print(email, pass2, token)
threads = []
num_thread = input("Threads: ")
num_thread = int(num_thread)
for i in range(num_thread):
t = threading.Thread(target=gen_acc)
threads.append(t)
t.start()
文件示例:
tqqe435ihwbta@oncemail.co.kr:#354946345e696$e30*417:another_line1
tkbzw543vwxzn@oncemail.co.kr:2e5548c543709!8@305-8(:another_line2
jcgeau43yphr@oncemail.co.kr:41c!954=7543cc^1#48fd_$*b5:another_line3
bqajs543qlqys@oncemail.co.kr:1f@e54d78^feb54355&6$50:another_line4
tqqeihw54bta@oncemail.co.kr:#3946345e696$e30*417:another_line5
tkbzwvwx543zn@oncemail.co.kr:2e58c5437709!8@305-8(:another_line6
jcgeauy453phr@oncemail.co.kr:41c!9=7543cc^1#48fd_$*b5:another_line7
bqajsqlq54ys@oncemail.co.kr:1f@ed78^feb53455&6$50:another_line8
【问题讨论】:
-
您需要为每个线程使用不同的种子。
-
您提供的代码不可运行。显示 tokens.csv 的样本,我将为您构建答案
-
所示代码不符合您的描述:线程不从文件中读取,它们都读取相同的全局变量。
-
@DarkKnight prnt.sc/20xkt91,我相信它也可以是 .txt 文件,不一定是 .csv 文件
-
请将文件示例作为文本添加到问题中
标签: python python-3.x multithreading line python-multithreading