2015-06-03 2 views
-1

Я пишу функцию, вычисляющую оценку для матрицы и выводя оценку вместе с некоторыми другими переменными в качестве заголовка. Мой код для вывода выглядит следующим образом:Печать на той же строке, что и заголовок в python

header=">"+motif+" "+gene+" "+str(score) 
append_copy = open(newpwmfile, "r") 
original_text = append_copy.read() 
append_copy.close() 
append_copy = open(newpwmfile, "w") 
append_copy.write(header) 
append_copy.write(original_text) 
append_copy.close() 

Однако заголовок печатает счет на следующей строке вместо одной и той же линии, как показано ниже:

>ATGC ABC/CDF 
    5.8 
    0.23076923076923 0 0.69230769230769 0.076923076923077 
    0.46153846153846 0.23076923076923 0.23076923076923 0.076923076923077 
    0 0 1 0 
    0 1 0 0 
    1 0 0 0 

Что может быть причиной? Я также пытался переставлять переменные, а затем заголовок печатается в одной строке. Однако последовательность имеет смысл в этом случае.

+1

Какое значение имеет оценка? – SuperBiasedMan

+4

Я предполагаю, что строка 'gene' имеет в ней новую строку. Попробуйте 'gene.strip()' –

+0

Это сработало! спасибо @EricAppelt, это была переменная гена! – AishwaryaKulkarni

ответ

2

При чтении полей из файла рекомендуется удалить лишние пробелы с помощью функции strip().

В качестве примера, это типичный рабочий процесс, чтобы вручную получить поля из файла CSV:

for line in open(fname).readlines(): 
    linefields = [field.strip() for field in line.strip().split(',')] 

Это удаляет либо blankspace между линиями и blankspace между полями.

Смежные вопросы