我想擦洗特定参数的文本文档。尝试过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所需位置参数: '字符串'
答案 0 :(得分:1)
您需要查找在字符串中的内容。问题在于您只给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)
关于正则表达式,听起来像post might help
TL; DR:
您可以使用此正则表达式:
^[A-Z]'?[- a-zA-Z]+$