Многопоточность в Python 3.x вопрос об ошибке - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь настроить многопоточный код в Python 3.x.Я создал две функции для нечеткого сопоставления некоторых данных быстрее, чем обычно.

Я пытаюсь разделить данные клиента на две части и запустить их отдельно.

Когда я пытаюсь запустить потокЯ получаю сообщение об ошибке, подобное этому:

Original exception was:
TypeError: FuzzyThread1() takes 0 positional arguments but 2 were given

TypeError: FuzzyThread2() takes 0 positional arguments but 2 were given

Вот мой код:

import _thread
from fuzzywuzzy import fuzz
import time
import datetime

similarity = 85
SplittedFilePath = "C:\\Users\\Erick.Batista\\Desktop\\PYTHON\Fuzzy\\FuzzyMatch - OwnScript\\EYData\\SplittedFiles\\"

starttimeT0 = time.time()

"""IMPORT DATABASES HERE!"""
ChronosFile = 'Medias.txt'
with open(ChronosFile) as f:
    contentB = f.readlines()
# Remove \n of each line
contentB = [x.strip() for x in contentB]

""" THREAD 1 - IMPORT CLIENT HALF DATA HERE! """
ClientData1 = 'BKG_Names_1.txt'
with open(ClientData1) as f:
    contentA1 = f.readlines()
# Remove \n of each line
contentA1 = [x.strip() for x in contentA1]


""" THREAD 2 - IMPORT OTHER HALF CLIENT DATA HERE!!! """
ClientData2 = 'BKG_Names_2.txt'
with open(ClientData2) as f:
    contentA2 = f.readlines()
# Remove \n of each line
contentA2 = [x.strip() for x in contentA2]

def FuzzyThread1():
    file1 = "C:\\Users\\Erick.Batista\\Desktop\\PYTHON\\Fuzzy\\FuzzyMatch - OwnScript\Results\\" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S" + "_Part1")
    file = open(file1 + '.txt', "a")
    file.write('Client Field | EY Field|Similarity\n')
    for i in contentA1:
        for y in contentB:
            if fuzz.ratio(i, y) >= similarity:
                file.write(str(i + ' | ' + y + '|' + str(fuzz.ratio(i, y)) + '\n'))
    file.close()

def FuzzyThread2():
    file2 = "C:\\Users\\Erick.Batista\\Desktop\\PYTHON\\Fuzzy\\FuzzyMatch - OwnScript\Results\\" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S" + "_Part2")
    file3 = open(file2 + '.txt', "a")
    file3.write('Client Field | EY Field|Similarity\n')
    for i in contentA2:
        for y in contentB:
            if fuzz.ratio(i, y) >= similarity:
                file3.write(str(i + ' | ' + y + '|' + str(fuzz.ratio(i, y)) + '\n'))
    file3.close()

_thread.start_new_thread(FuzzyThread1,("Thread-1",2))
_thread.start_new_thread(FuzzyThread2,("Thread-2",4))
print("It took TOTAL {:.2f} seconds to execute this code".format(time.time() - starttimeT0))
...