我有一些代码行可以从pdf文件中提取电子邮件地址。
for page in pdf.pages:
pdf = page.extractText()
# print elpdf
r = re.compile(r'[\w\-][\w\-\.]+@[\w\-][\w\-\.]+[a-zA-Z]{1,4}')
results = r.findall(pdf)
Listemail.append(results)
print(Listemail[0:])
pdf.stream.close()
不幸的是,在运行代码之后我注意到结果并不完全正常,因为每次找到匹配项时它都会出现'u'字符:
[[u'testuser1@training.local']]
[[u'testuser2@training.local']]
有人知道如何避免出现这个角色?
提前致谢
答案 0 :(得分:1)
这不是问题。表示字符串前面的u
表示它是一个Python unicode
字符串。 See this documentation.除非你对他们做任何疯狂的事情,因为某些原因要求你的字符串不是unicode,我不明白这是怎么回事。
答案 1 :(得分:0)
这些是unicode strings,除非你有一些真正的问题,否则你不需要避免它们。
答案 2 :(得分:0)
正如其他人所说,这不是一个错误,而是一个功能。
如果你想要的是非unicode编码的字符串,你可以将文本从unicode转换为更可口的东西。 StackOverflow Q / A涵盖主题:
Convert a Unicode string to a string in Python (containing extra symbols)
我之前遇到过这种情况,在某些用例中,它可能会有问题,因为您会遇到一个方法需要非unicode字符串并中断的问题。 :)
该链接的示例解决方案:
>>> a=u'aaa'
>>> a
u'aaa'
>>> a.encode('ascii','ignore')
'aaa'
>>> a.encode('utf8','ignore')
'aaa'
>>> str(a)
'aaa'
>>>