Разделить большой файл на несколько файлов в python3.x - PullRequest
2 голосов
/ 02 ноября 2019

Я хочу разделить файл на несколько файлов, если размер файла file_write превышает 20 МБ. В функции Random я открываю big_file.txt и удаляю шумы, используя remove_noise () и записываю чистую строку в выходной файл. Я не уверен, как разделить файл на основе размера в моей текущей реализации. Пожалуйста, найдите код ниже: (Извиняюсь за то, что не обеспечил правильную реализацию с примером, потому что это действительно сложно) Я рассмотрел пример по этой ссылке: Разделить большой текстовый файл (около 50 ГБ) на несколько файлов

import os
def parses(lines, my_date_list):
    for line in reversed(list(lines)):
        line = line.strip()
        if not line:
            continue

        date_string = "2019-11-01" # assumption
        yield date_string, line


def remove_noise(line):
    """ dummy function"""
    return line



def random_function(path, output, cutoff="2019-10-31"):

    my_date_list = []
    if os.path.exists(path):
        with open(path) as f:
            lines = parses(f, my_date_list)
            for date, line in lines:
                if cutoff <= date:
                    results = remove_noise(line)
                    output.write(results + '\n')
                    continue
                else:
                    break

При записи строк в output мне нужно проверить размер. Если размер достиг 20 МБ, и я хочу записать его в секунду {может быть output_2} и т. Д.

if __name__ == '__main__':
    path = "./big_file.txt"
    file_write = "./write_file.txt"
    with open(file_write) as outfile:
        random_function(path=path, output=outfile)
...