Мне нужно открыть несколько файлов (2 ввода и 2 выходных файла), выполнить сложные манипуляции на линиях из входных файлов, а затем добавить результаты в конце 2 выходных файлов. Настоящее время я использую следующий подход:.Работа с несколькими входными и выходными файлами в Python
in_1 = open(input_1)
in_2 = open(input_2)
out_1 = open(output_1, "w")
out_2 = open(output_2, "w")
# Read one line from each 'in_' file
# Do many operations on the DNA sequences included in the input files
# Append one line to each 'out_' file
in_1.close()
in_2.close()
out_1.close()
out_2.close()
Файлы огромны (каждый потенциально приближается 1GO, поэтому я читаю через эти входные файлы в то время, я предполагаю, что это не очень Pythonic способ сделать что-то. :) Будет ли использовать следующую форму хорошо?
with open("file1") as f1:
with open("file2") as f2:
with open("file3") as f3:
with open("file4") as f4:
# Read one line from each 'in_' file
# Do many operations on the DNA sequences...
# Append one line to each 'out_' file
Если да, то я мог сделать это, избегая при этом сильно отступом код (комментируемая часть, которая сама по себе может содержать отступом строки. Если, как это было предложено, я не использовать надлежащим образом определенные функции заранее)? Спасибо за понимание!
Вы также пытаются избежать определения функций и классов? Простое определение функции разрешило бы множество проблем с вложением. Почему бы не использовать определения функций? –
Также вы делаете какое-то «слияние» между двумя исходными файлами? Почему бы вам не сделать OS для вас? Команда 'sort' linux легко объединяет ваши два файла в один входной поток. –
@ S.Lott Файлы содержат генетические данные, я ищу определенные шаблоны, редактируя их и записывая «исправленные» данные в выходные файлы. Процесс действительно не прямой. Часть «Выполнять некоторые операции» кода выполняется через 250 строк кода Python. Невозможно использовать быстрые и грязные команды Bash здесь :) Я определенно НЕ пытаюсь избежать определения классов и функций (есть много функций, выполняющих небольшие части задания, снова в разделе «Do some operations»). Как вы думаете, я должен использовать определение функции для решения проблем гнездования? – Morlock