Я взял этот код и слегка его изменил, чтобы он соответствовал Python3 .8.
Проблема, с которой я столкнулся, состоит в том, что на выходе изначально есть какие-то символы обмоток Я подозреваю, что это символ перевода строки, который неправильно преобразован? Смотрите выходные фрагменты ниже. Я не мог решить это, поэтому прежде чем тратить на это слишком много времени, я протестировал программу с разным количеством процессов. По какой-то причине выходные данные меняются, когда я увеличиваю это значение.
import multiprocessing
from textwrap import dedent
from itertools import zip_longest
def process_chunk(d):
#test function, change this later
return d
def grouper(n, iterable, padvalue=None):
return zip_longest(*[iter(iterable)]*n, fillvalue=padvalue)
outfile= open("C:/Users/#####/Desktop/test.txt","w+")
if __name__ == '__main__':
#open input file
test_data = open('D:/test.txt')
# Create pool (p)
p = multiprocessing.Pool(4)
for chunk in grouper(1000, test_data):
results = p.map(process_chunk, chunk)
for r in results:
outfile.write(f'{r}')
Приведенные ниже примеры относятся к концу файла, поэтому я подозреваю, что выходные данные «None» и 敮 являются лишь частью фрагмента. Ожидаемый вывод:
5.2615 19.522 -0.968 3 134 120 124
5.9195 19.695 -0.828 49 197 192 170
6.0985 19.192 -0.984 0 150 137 130
5.2255 19.915 -0.939 3 92 92 81
6.3825 19.286 -1.166 5 100 99 92
5.8965 19.705 -0.411 67 211 209 205
С многопроцессорной обработкой. Бассейн (4) (тот же вывод для N = 2 до N = 10)
5.9195 19.695 -0.828 49 197 192 170ഀ
6.0985 19.192 -0.984 0 150 137 130ഀ
5.2255 19.915 -0.939 3 92 92 81ഀ
6.3825 19.286 -1.166 5 100 99 92ഀ
5.8965 19.705 -0.411 67 211 209 205ഀ
潎
С многопроцессорной обработкой. ) (тот же вывод для N = 11 до N = 24)
5 . 2 6 1 5 1 9 . 5 2 2 - 0 . 9 6 8 3 1 3 4 1 2 0 1 2 4
5 . 9 1 9 5 1 9 . 6 9 5 - 0 . 8 2 8 4 9 1 9 7 1 9 2 1 7 0
6 . 0 9 8 5 1 9 . 1 9 2 - 0 . 9 8 4 0 1 5 0 1 3 7 1 3 0
5 . 2 2 5 5 1 9 . 9 1 5 - 0 . 9 3 9 3 9 2 9 2 8 1
6 . 3 8 2 5 1 9 . 2 8 6 - 1 . 1 6 6 5 1 0 0 9 9 9 2
5 . 8 9 6 5 1 9 . 7 0 5 - 0 . 4 1 1 6 7 2 1 1 2 0 9 2 0 5
None