Удалите все символы подряд с помощью re.sub python - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь отредактировать данные, чтобы заменить ВСЕ символы до заданного значения. В настоящее время я получил это далеко с Python, но это выдает мне ошибку "TypeError: объект 'str' не может быть вызван"

Вот набор данных ранее и то, что я пытаюсь достичь:

Header 1,Header 2,Header 3,Header 4,Header 5 
1,2,3,4,DESCRIPTION
1,2,3,4,DEffffSCRIPTION
1,2,3,4,aaaaDESCRIPTION
1,2,3,4,<>DESCRIPTION

Вот что я пытаюсь достичь:

Header 1,Header 2,Header 3,Header 4,Header 5 
1,2,3,4,SCRIPTION
1,2,3,4,SCRIPTION
1,2,3,4,SCRIPTION
1,2,3,4,SCRIPTION

Если вы можете помочь исправить ошибку TypeError в re.sub или если вы можете помочь в целом, это было бы здорово, спасибо.

Вот мой python код.

import csv
import re

with open('2.csv', "r") as inFile:
    reader = csv.reader(inFile)
    for row in reader:
        row[4](re.sub(r'.*SC', r'SC.*', row[4]))

1 Ответ

2 голосов
/ 01 апреля 2020

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

row[4](re.sub(r'.*SC', r'SC.*', row[4]))

row [4] - это строка, поэтому вы не можете вызывать re.sub для нее таким образом. Вам нужно сохранить выходные данные re.sub в переменной.

subbed_row = re.sub(r'.*SC', r'SC.*', row[4])

И оттуда выяснить, как вы хотите записать это обратно в CSV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...