Этот метод вводит файл и каталог файла.Он содержит матрицу данных и должен копировать первые 20 столбцов каждой строки после заданного имени строки и соответствующей буквы для строки.Первые 3 строки каждого файла пропускаются, поскольку в нем содержится неважная информация, которая не нужна, а также не требуются данные в нижней части файла.
Например, файл будет выглядеть следующим образом:
unimportant information--------
unimportant information--------
-blank line
1 F -1 2 -3 4 5 6 7 (more columns of ints)
2 L 3 -1 3 4 0 -2 1 (more columns of ints)
3 A 3 -1 3 6 0 -2 5 (more columns of ints)
-blank line
unimportant information--------
unimportant information--------
Выходные данные метода должны распечатать "матрицу" в некоторой заданной форме.
Пока чтоВыходные данные дают список каждой строки в виде строки, однако я пытаюсь найти лучший способ решения проблемы.Я не знаю, как игнорировать неважную информацию в конце файлов.Я не знаю, как получить только первые 20 столбцов после буквы в каждой строке, и я не знаю, как игнорировать номер строки и букву строки.
def pssmMatrix(self,ipFileName,directory):
dir = directory
filename = ipFileName
my_lst = []
#takes every file in fasta folder and put in files list
for f in os.listdir(dir):
#splits the file name into file name and its extension
file, file_ext = os.path.splitext(f)
if file == ipFileName:
with open(os.path.join(dir,f)) as file_object:
for _ in range(3):
next(file_object)
for line in file_object:
my_lst.append(' '.join(line.strip().split()))
return my_lst
Ожидаемые результаты:
['-1 2 -3 4 5 6 7'], ['3 -1 3 4 0 -2 1'], ['3 -1 3 6 0 -2 5']
Фактические результаты:
['1 F -1 2 -3 4 5 6 7'], ['2 L 3 -1 3 4 0 -2 1'], ['3 A 3 -1 3 6 0 -2 5'], [' '], [' unimportant info'], ['unimportant info']