распилить файл на два файла

Подскажите, существует ли способ сделать разделение файла быстрее, чем написал я?

from threading import Thread
from datetime import datetime

def spliter(name):
    now = datetime.now()

    print(f"start spliting at : {now.strftime('%H:%M:%S')}")
    with open(name, "r") as f:
        data = f.readlines()
        sep = int(len(data) / 2)
        first = """"""
        second = """"""

        def dd1():
            nonlocal first
            for i in data[:sep]:
                first += i

        def dd2():
            for i in data[sep:]:
                nonlocal second
                second += i

        t1 = Thread(target=dd1)
        t2 = Thread(target=dd2)
        t1.start()
        t2.start()
        t1.join()
        t2.join()
        file1 = open('first.txt', "w")
        file1.write(first)

        file2 = open('second.txt', "w")
        file2.write(second)
    print(f"end spliting at : {now.strftime('%H:%M:%S')}")


if __name__ == '__main__':
    spliter('Price WA.txt')

Ответы (1 шт):

Автор решения: eri

Цикл убрать, нелокальные переменные можно убрать и остается уже

file1 = open('first.txt', "w")
file1.writelines(data[:sep])

Треды теперь не нужны. Правда можно....

t1 = Thread(target=file1.writelines,args=(data[:sep],))

Но не уверен что это даст какой-то особый прирост

→ Ссылка