目前我正在通过 python 视频课程自动化无聊的东西,基本上是在复制他显示的代码并尝试以这种方式创建程序,我的代码目前与视频中的完全相同。
第一个我将说明程序的功能,而不是第二个为什么我认为它可能存在上述错误,并希望有人帮助菜鸟解决这个问题。
该程序旨在获取我们已复制到剪贴板的 pdf 文档,该文档包含电子邮件和电话号码。我们希望它提取电子邮件和电话,然后将最后的信息复制到剪贴板。
讲师和我之间的不同之处在于我使用不同的文档来复制和提取电话号码,因为他使用的电话号码已不存在。如果我打印复制的电话号码,当前输出是字母 u,而不是预期的电话号码
import re, pyperclip
# Create a regex for phone numbers
phoneRegex = re.compile(r'''
(((\d\d\d)|(\(\d\d\d\)))? # area code <optional>
(\s|-) # first seperator
\d\d\d # first 3 digitis
- # seperator
\d\d\d\d # last 4 digits
(((ext(\.)?\s)|x) # extension word-part<optional>
(\d{2,5}))? # extension number-part<optional> 2,5 is to signify that it can be 2-5 digits
)
''', re.VERBOSE)
# TODO:: Create a regex object for email addresses
emailRegex = re.compile(r'''
# we will make it search for emails that contain any numbers, letters plus or period symbols
[a-zA-Z0-9_.+]+ # name part
@ # @ symbol
[a-zA-Z0-9_.+]+ # domain part
''', re.VERBOSE)
# Get the text off the clipboard
text = pyperclip.paste()
# Extract the email/phone from this text
extractedPhone = phoneRegex.findall(text)
extractedEmail = emailRegex.findall(text)
allPhoneNumbers = []
for phoneNumber in extractedPhone:
allPhoneNumbers.append(phoneNumber[0])
print(allPhoneNumbers)
# TODO: Copy the extracted email/phone to the cliboard
results = '\n'.join(allPhoneNumbers) + '\n' + '\n'.join(extractedEmail)
pyperclip.copy(results)