Python не записывает каждую строку в выходной файл - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь отформатировать / очистить некоторые данные из текстового файла, используя Python. Столбцы разделены вкладками, и мне нужны только определенные столбцы из каждой строки. Я столкнулся с проблемой, которая не имеет для меня никакого смысла, и был бы признателен за помощь. Я открываю файл, а затем запускаю al oop, чтобы просмотреть каждую строку из этого файла. Я хочу в конечном итоге выполнить форматирование каждой строки перед записью ее в выходной файл, но я даже не могу получить каждую строку из входного файла в выходной файл, так что это первый шаг. Вот что у меня:

rfile = open(input file path here, 'r')
wfile = open(output file path here,'w')

counter = 0
for line in rfile:
    x = line.split('\t')
    print(x)
    wfile.write(str(x) + '\n')
    counter +=1
print(counter)

В файле 9101 строка. Когда я смотрю на консоль после выполнения, я вижу 9101 напечатанную строку. Переменная счетчика при печати - 9101. Когда я go в свой выходной файл, там только 9035 строк, а не 9101, которые должны быть там. Выходной файл выглядит точно так же, как консоль (именно так она и должна выглядеть), за исключением того, что по неизвестной причине он просто останавливается на строке 9035. Я не вижу скрытых символов или проблем с интервалом, вызывающих проблему, и не могу найти решение где-либо еще. Кто-нибудь сталкивался с этой проблемой раньше или кому-то понадобится мой текстовый файл? Спасибо!

1 Ответ

0 голосов
/ 14 июля 2020

Ответил, легко исправить. Спасибо за помощь! Просто нужно было закрыть файл, чтобы последний буфер, полный данных, мог быть записан на диск, как указал jasonharper. Так что добавьте это в конец фрагмента кода:

wfile.close()
rfile.close()
...