Как исправить ключевое слово «заменить», когда оно не работает в Python - PullRequest
0 голосов
/ 06 июня 2019

Я пишу код, который должен получить четыре отдельных значения, и одно из значений имеет символ новой строки в дополнение к дополнительному апострофу и скобке, например: 11 \ n '].Мне нужны только 11 и я смог убрать '], но я не могу удалить символ новой строки.

Я пробовал различные варианты установки полосы и замены, и обе полосы и замены не удаляют деталь.

with open('gil200110raw.txt', 'r') as qcfile:
    txt = qcfile.readlines()
    line1 = txt[1:2]
    line2 = txt[2:3]
    line1 = str(line1)
    line2 = str(line2)
    sptline1 = line1.split(' ')
    sptline2 = line2.split(' ')
    totalobs = sptline1[39]
    qccalc1 = sptline2[2] 
    qccalc2 = sptline2[9]
    qccalc3 = sptline2[16]
    qccalc4 = sptline2[22]
    qccalc4 = qccalc4.strip("\n']")
    qccalc4 = qccalc4.replace("\n", "")

Я не получил ошибку, но вывод print (qccalc4) равен 11 \ n.Я ожидаю, что на выходе будет 11.

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Вы можете использовать регулярное выражение для соответствия выходов, которые вы ищете.

Из вашего описания я предполагаю, что это все целые числа, рассмотрим следующий фрагмент

import re
p = re.compile('[0-9]+')
sample = '11\n\'] dwqed 12 444'
results = p.findall(sample)

results теперь будет содержать массив ['11', '12', '444'].

re - это пакет регулярных выражений для python, а p - это шаблон, который мы хотели бы найти в нашем тексте. Этот шаблон [0-9]+ просто означает совпадение одного или нескольких символов от 0 до 9

.

вы можете найти документацию здесь

0 голосов
/ 06 июня 2019

Используйте взамен rstrip!

>>> 'test string\n'.rstrip()
'test string'
...