如何打印文件中的所有电话号码

2024-06-11 02:07:12 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码仅打印第一个电话号码。如何打印文件中的所有电话号码

import re


def findn(filename):
    phonenum= re.compile(r'05\d\d\d\d\d\d\d\d')
    with open(filename) as f:
        for line in f:
            phone_number = re.search(phonenum, line)
            if phone_number:

                print("phone number found: "+phone_number.group())
            else:
                print('none')
        print('done')


findn("1.txt")

Tags: 代码importrenumberdefwithlinephone
2条回答

要逐行打印文件,只需使用2行for循环即可

file = open("name_of_file.txt", "r")

for line in file:
    print(line)

然后,您可以将该行保存到变量中,以便稍后在循环中使用-

file = open("name_of_file.txt", "r")

for line in file:
    phonenb = line

或者,您可以使每一行成为列表中的一个元素-

file = "name_of_file.txt"
lines = [line.split() for line in open(file)]
print(lines)

re.findall()替换re.search()可能会起作用(由于我没有1.txt文件,所以无法测试)。这是因为re.search()只查找匹配的实例,而re.findall()查找所有实例

import re

def findn(filename):
    phonenum= re.compile(r'05\d\d\d\d\d\d\d\d')
    with open(filename) as f:
        for line in f:
            phone_number = re.findall(phonenum, line)
            if phone_number:
                print("phone number found: "+phone_number.group())
            else:
                print('none')
        print('done')


findn("1.txt")

相关问题 更多 >