首頁 > 軟體

如何利用Python獲取文字中的電話號碼範例程式碼

2022-10-02 14:00:59

前言

此編制利用Python的簡單程式設計,實現獲取txt文字裡的電話號碼。

這裡小編使用了Python3.8.6,os、re庫

開啟文字

#事先新建文字readphone.txt,將要提取的文章內容複製到readphone.txt裡。

下方為Python開啟文字

TXTtemp = open("readphone.txt","r+")
txtbuffer=TXTtemp.read()

正規表示式遍歷電話

利用正規表示式提取11位數位的電話號碼。

patter="(?:^|[^d])(1d{10})(?:$|[^d])"
phone_list=re.compile(patter).findall(txtbuffer)

最後拼接輸出

輸出會新建一個檔案getphone.txt來存放提取到的電話(在資料夾裡沒有getphone.txt的時候),多次使用會自動換行填寫。

with open('getphone.txt','a') as file0:
    print('%s' %a,'%s' %t,'%s' %s,file=file0)

完整的程式碼↓

複製貼上可直接用,這裡多了datetime是為了加入時間區分是什麼時候獲取電話的。

import os,re,datetime

TXTtemp = open("readphone.txt","r+")
txtbuffer=TXTtemp.read()
patter="(?:^|[^d])(1d{10})(?:$|[^d])"
phone_list=re.compile(patter).findall(txtbuffer)

t = 'Phone is : '
s = phone_list
a = datetime.datetime.now().date()

with open('getphone.txt','a') as file0:
    print('%s' %a,'%s' %t,'%s' %s,file=file0)
close(TXTtemp)

效果圖↓↓↓

使用方法

獲取文章中的電話號碼(11位數)

(1)將文章貼上到readphone.txt儲存

(2)雙擊執行程式.py

(3)開啟getphone.txt提取到的電話在裡面

補充:使用Python提取電話號碼和E-mail地址

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# @File    : PhoneAndEmail.py  專案:電話號碼與Email地址提取程式
# @Software: PyCharm
 
"""
執行程式,從剪貼簿獲取文字,找出文字所有的Email地址和電話號碼,然後將其貼上到剪貼簿
"""
 
import pyperclip, re
 
phoneRegex = re.compile(r'''(
            (d{3}|(d{3}))?    # 可選的區號
            (s|-|.)?            # 中間的分隔符
            (d{3})                 # 開始的3個數位
            (s|-|.)?            # 中間的分隔符
            (d{4})                 # 後面的4個數位
            (s*(ext|x|ext.)s*(d{2,5}))?   # 可選的分機號
            )''', re.VERBOSE)
 
emailRegex = re.compile(r'''(
            [a-zA-Z0-9._%+-]+          # 使用者名稱
            @
            [a-zA-Z0-9.-]+             # 域名
            (.[a-zA-Z]{2,4})
            )''', re.VERBOSE)
 
text = pyperclip.paste()
 
matches = []
for groups in phoneRegex.findall(text) :
    phoneNum = '-'.join([groups[1], groups[3], groups[5]])
    if groups[8] != '' :
        phoneNum += ' x' + groups[8]
    matches.append(phoneNum)
for groups in emailRegex.findall(text) :
    matches.append(groups[0])
 
if len(matches) > 0 :
    pyperclip.copy('n'.join(matches))
    print('Copied to clipboard')
    print('n'.join(matches))
else :
    print('No phone numbers or email addresses found.')

結語

到此這篇關於如何利用Python獲取文字中電話號碼的文章就介紹到這了,更多相關Python獲取文字中電話號碼內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com