解析文件 - python

时间:2016-07-02 06:20:47

标签: python regex

我想从另一个txt文件中导出一个新的txt文件列表。 第一个txt文件如下所示:

  

http://pastebin.com/raw/10hvUbTi电子邮件:631关键字:0.0

     

http://pastebin.com/raw/5f0bnCq9电子邮件:61关键字:0.0

我正在尝试创建一个如下所示的列表:

  

URL

     

URL

我在pycharm中没有得到任何输出

有人可以帮忙吗?

import re
import urllib2
filename = 'C:\\file.txt'
pattern = ('^\S*')
with open(filename) as f:
    for line in f:
        if pattern in line:
            print line

2 个答案:

答案 0 :(得分:1)

你可以去:

import re

rx = re.compile(r'^(?P<email>[^|\n]+)', re.MULTILINE)
with open("emails.txt") as f:
    raw_data = f.read()
    emails = [match.group('email') for match in rx.finditer(raw_data)]
    print emails

显然,emails.txt需要在这里进行调整 请参阅a demo on regex101.com

答案 1 :(得分:0)

你根本没有使用正则表达式。您只是测试了原始字符串是否在行中。要使用正则表达式,

pattern = re.compile(r'^\S*')

注意模式字符串之前的r,它代表原始字符串,在正则表达式中非常重要。

要搜索特定行中的pattern,请使用

pattern.search(line)

如果找不到匹配项,则会返回MatchObject,如果找不到,则返回None。有关python正则表达式的更多参考资料可以在documentation中找到。