У меня есть 3 выходных файла, содержащих координаты x, y, z соответственнонаписать текстовый файл из текстовых файлов python
file1.txt (содержит только x) | file2 (Y) | file3 (Z)
2.113
3.023
-7.234
...
и родительский файл pdb, который содержит данные координат. Я хочу извлечь только те строки из файла pdb, соответствующие координатам x, y, z из файла1, file2, file3.The строки файла pdb;
ATOM 1 O5' G A 93 -12,706 19,299 0,129 1,00 0,00 O
Смелые значения были бы мои критерии соответствия, чтобы скопировать всю строку.
1- Как я могу объединить три выходных файла, чтобы сделать один файл, который может дать мне координаты x, y, z в строке для работы с моим скриптом.
final_file = [file1, file2, file3]?
2- Как я могу извлечь баллы по критериям соответствия;
def read_convex_points(final_file,parent_pdb):
with open("output.txt","w") as f1:
with open(final_file) as f2:
with open(parent_pdb) as f3:
for line1 in f2:
for line2 in f3:
if line1 in line2:
f1.write(line2)
return
final_file = "file1.txt"
parent_pdb = "original.pdb"
read_convex_points(final_file,parent_pdb)
Я написал функцию что-то вроде этого, но если условие не работает.
Ваше описание немного неясно. Являются ли координаты отдельными файлами? Например, координаты X в файлах1, координаты Y в файле2, координаты Z в файле3. –
Да, вы правы. –
У вас есть 2 вопроса, они, вероятно, должны быть в отдельных сообщениях. Но в любом случае, если вы работаете в Unix или Linux, самым простым способом присоединиться к 3 файлам в 1 является использование 'paste'. Это довольно легко сделать в Python, как показывает ответ Питера. Вы хотите сделать вставку в той же программе, которая выполняет тестирование соответствия? Я думаю, что было бы неплохо сделать это в отдельной программе, особенно если вам нужно сделать несколько проходов через данные. –