Python: ошибка: ошибка типа: findall () отсутствует 1 обязательный позиционный аргумент: 'строка' - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь очистить текстовый документ с конкретными параметрами.Пробовал разные итерации строки x=..., но программа не может прочитать всю строку.

import re
#import csv

text = open(r'C:\Users\Vincent\Documents\python\theSortingHat\100000DirtyNames.txt') #open text file
for line in text: #iterate through every line
    #return list of names in that line
    x = re.findall ('^([a-zA-Z]-?$')
    #if an actual name is found
    if x != 0:
        print(x)

Я получаю:

Ошибка: Ошибка типа: findall () отсутствует 1 обязательный позиционный аргумент: 'string'

1 Ответ

0 голосов
/ 02 февраля 2019

Вам нужно найти что-то в строке .Проблема в том, что вы дали re.findall только один параметр, вы также должны указать line в качестве параметра.У вас также были некоторые проблемы с вашим регулярным выражением, и вы не закрыли свою группу (то есть ()), что сделало его недействительным регулярным выражением.

Это ответ, к которому вы стремитесь:

import re

text = open(r'C:\Users\Vincent\Documents\python\theSortingHat\100000DirtyNames.txt') #open text file
for line in text: #iterate through every line
    #return list of names in that line
    x = re.findall('^([a-zA-Z])-?$', line)
    #if an actual name is found
    if x != 0:
        print(x)

О регулярном выражении, звучит так: сообщение может помочь
TL; DR:
Вы можете использовать это регулярное выражение, возможно:

^[A-Z]'?[- a-zA-Z]+$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...