以某种格式python从文件中提取

时间:2014-03-10 17:30:17

标签: python

我有两个问题:

  1. 编写一个程序,在文件中检索格式为(nnn)nnn-nnnn的所有电话号码。

  2. 制作程序以检索文件中以.com结尾的每个电子邮件地址

  3. 它们不同但基本上我们想要检查我们阅读的文件中的某些字符串。到目前为止,我只能读取文件并将每行放入一个数组中。我不知道如何忽视最后的\ n。

    代码:

    newfile = open('filepath')
    numfile = newfile.readlines()
    
    
    numbers = []
    for line in num:
        numbers.append(line)
    
    newfile.close
    
    print numbers
    

2 个答案:

答案 0 :(得分:1)

可以使用re模块。

import re

pattern1 = '\(\d{3}\)\d{3}-\d{4}'
re.findall(pattern1, "My number is (234)456-3678 and your number is (567)789-4567.")

假设文件具有与findall的第二个参数中提到的内容相同的内容。 同样也为电子邮件创建模式。 喜欢

pattern2 = '[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.com'

re.findall(pattern2, "My email is abc@hotmail.com and your email is abcdef_23@gmail.com")

答案 1 :(得分:0)

要忽略每行末尾的\ n,只需在你的行上使用.strip(“\ n”)。

for line in num:
    numbers.append(line.strip("\n"))

.strip(phrase)将删除与括号中的短语匹配的字符串末尾的任何字符。

请问你能澄清问题的第一部分吗?如何构建文件 - 您是否会搜索文件以查找其中嵌入的数字,或者每行有一个数字?正如上面的用户所说,如果是后者,那么你可以使用正则表达式来搜索电话号码,否则,如果前者是真的,你就可以正确地遍历文件。