Я работаю с очень большим текстовым файлом (58 ГБ), который пытаюсь разбить на более мелкие куски. Проблема, с которой я сталкиваюсь, состоит в том, что более мелкие куски кажутся шестнадцатеричными. У меня есть терминал, печатающий каждую строку в stdout, но когда я вижу, что он напечатан в stdout, он выглядит для меня как обычные строки. Это известное поведение? Я никогда не сталкивался с проблемой, когда Python продолжает выплевывать вещи в Hex. Еще более странно, когда я пытался использовать разделение Ubuntu из командной строки, оно также генерировало все в Hex.
Фрагмент кода ниже:
working_dir = '/SECRET/'
output_dir = path.join(working_dir, 'output')
test_file = 'SECRET.txt'
report_file = 'SECRET_REPORT.txt'
output_chunks = 100000000
output_base = 'SECRET'
input = open(test_file, 'r')
report_output = open(report_file, 'w')
count = 0
at_line = 0
output_f = None
for line in input:
if count % output_chunks == 0:
if output_f:
report_output.write('[{}] wrote {} lines to {}. Total count is {}'.format(
datetime.now(), output_chunks, str(output_base + str(at_line) + '.txt'), count))
output_f.close()
output_f = open('{}{}.txt'.format(output_base, str(at_line)), 'wb')
at_line += 1
output_f.write(line.encode('ascii', 'ignore'))
print line.encode('ascii', 'ignore')
count += 1