1
我在MacOS Sierra上使用Python 3.5。我正在研究這個課程,用Python自動化枯燥的東西,並且遇到了pyperclip的問題。下面的代碼適用於僅複製pdf的4行時,但是當我複製所有文本時,我會收到一條錯誤消息(如下所示)。pyperclip不適用於大型文本
有人可以幫助我嗎?這是pyperclip的問題嗎?我的代碼?我的電腦?
錯誤消息:
Traceback (most recent call last):
File "/Users/ericgolden/Documents/MyPythonScripts/phoneAndEmail.py", line 35, in <module>
text = pyperclip.paste()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/pyperclip/clipboards.py", line 22, in paste_osx
return stdout.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 79: invalid continuation byte
這裏是我的code:
#! python3
import re, pyperclip
# Create a regex for phone numbers
phoneRegex = re.compile(r'''
# 415-555-000, 555-0000, (415) 555-0000, 555-000 ext 12345, ext. 12345, x12345
(
((\d\d\d) | (\(\d\d\d\)))? # area code optional
(\s|-) # first separator
\d\d\d # first 3 digits
- # seperator
\d\d\d\d # last 4 digits
(((ext(\.)?\s)|x) # extension word-part optional
(\d{2,5}))? # extension number-part optional
)
''', re.VERBOSE)
# Create a regex for email addresses
emailRegex = re.compile(r'''
# [email protected](\d{2,5}))?.com
[a-zA-Z0-9_.+]+ # name part
@ # @ symbol
[a-zA-Z0-9_.+]+ # domain name part
''', re.VERBOSE)
# Get the text off the clipboard
text = pyperclip.paste()
# TODO: Extract the email/phone from this text
extractedPhone = phoneRegex.findall(text)
extractedEmail = emailRegex.findall(text)
allPhoneNumbers = []
for phoneNumber in extractedPhone:
allPhoneNumbers.append(phoneNumber[0])
# TODO: Copy the extraced email/phone to the clipboard
results = '\n'.join(allPhoneNumbers) + '\n' + '\n'.join(extractedEmail)
pyperclip.copy(results)