Я хочу разделить файл на несколько файлов, если размер файла 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)