我有一些 python 代码来读取文件并将数据推送到列表中。然后将此列表放入队列,使用线程处理列表,一次说 20 个项目。处理后,我将结果保存到一个新文件中。新文件中的内容实际上与原始文件的顺序不同。例如,我有输入,
1个 2 乙 3℃ 4个 5天
但输出看起来像:
2个氨基酸 1巴 4个氨基酸 5天 3 约
有什么办法可以保留原来的顺序吗?这是我的代码:
导入线程、队列、时间、系统 类 eSS(threading.Thread): def __init__(self,queue): threading.Thread.__init__(self) self.queue = 队列 self.lock = threading.Lock() def ess(自我,电子邮件,代码,建议,评论,原因,dlx_score): #做点什么 定义运行(自我): 而真: 信息 = self.queue.get() infolist = info.split('\t') 电子邮件 = 信息列表 [1] 代码 = 信息列表 [2] 建议 = 信息列表 [3] 评论 = 信息列表 [4] 原因 = 信息列表 [5] dlx_score = (0 if infolist[6] == 'NULL' else int(infolist[6])) g.write(info + '\t' + self.ess(email,code,suggested,comment,reason,dlx_score) +'\r\n') self.queue.task_done() 如果 __name__ == "__main__": 队列 = 队列.Queue() 文件名 = sys.argv[1] #定义线程数 线程 = 20 f = 打开(文件名,'r') g = open(文件名+'.esS','w') 行 = f.read().splitlines() f.close() 开始 = time.time() 对于我在范围内(线程): t = eSS(队列) t.setDaemon(真) t.start() 对于行中的行: queue.put(行) queue.join() 打印 time.time()-开始 g.close()