将电子邮件正文中的特定文本解析为CSV文件

我一直在寻找解决方案.我是新手
Python,所以我有点迷路了.任何指针都将是一个很好的帮助.我
有几百封电子邮件,其中包含我想要的数据
并入数据库或CSV文件.我想搜索电子邮件
对于特定文本.
这些电子邮件基本上看起来像这样:
随机文本_重要文本:_15648随机文本随机文本随机随机文本
随机文字
随机文本随机文本随机文本_impeptant文本:_15493随机文本
随机文字
随机文本随机文本_重要文本:_11674随机文本随机文本
随机文字
===============
NAME1:15 NAME5:14
名称2:18名:105
NAME3:64 NAME7:2
NAME4:24 NAME8:13
我希望将" name1:15"之类的信息放在CSV中
名称"名称1"和值" 15".日期也是如此
" _ Important文本:_15493".
我想使用此CSV或数据库来绘制图形
数据.
谢谢!

# 回答1


在3月8日,4:20*PM,dpw.a ...@gmail.com写道:
可以使用Pyparsing完成此类工作.这是一个起点
给你的点:
来自pyparsing incort word,单一,nums,组合
导入日历
text =""""
随机文本_重要文本:_15648随机文本随机文本随机随机
文本
随机文字
随机文本随机文本随机文本_impeptant文本:_15493随机
文本
随机文字
随机文本随机文本_重要文本:_11674随机文本随机
文本
随机文字
===============
NAME1:15 NAME5:14
名称2:18名:105
NAME3:64 NAME7:2
NAME4:24 NAME8:13
"""
integer = word(nums)
eskentits_text =" _ Important文本:_" + Integer(" value")
monthame = oneof(list(calendar.month_name))
dayName = oneof(list(calendar.day_name))
date = dayname(" dayofweek") + monthame(" noter") + integer(" day") + \
"," +整数("年")
date = word(" =").suppress() +" date:" + date(" date") +
word(" =").suppress()
名称=组合("名称" + integer)("名称") +':' + integer(" value")
对于(exigents_text | date | nequalata).SearchString(text):
print match.dump()
印刷:
['_important文本:_','15648']
- 价值:15648
['_important文本:_','15493']
- 价值:15493
['_important文本:_','11674']
- 价值:11674
['日期:','星期三','3月','5',',','2008']
- 日期:['星期三','3月','5',',','2008']
- 天:5
- Dayofweek:星期三
- 月份:三月
- 年:2008
- 天:5
- Dayofweek:星期三
- 月份:三月
- 年:2008
['name1',':','15']
- 名称:名称1
- 价值:15
['name5',':','14']
- 名称:名称5
- 价值:14
['name2',':','18']
- 名称:名称2
- 价值:18
['name6',':','105']
- 名称:名称6
- 价值:105
['name3',':','64']
- 名称:名称3
- 价值:64
['name7',':','2']
- 名称:名称7
- 值:2
['name4',':','24']
- 名称:名称4
- 价值:24
['name8',':','13']
- 名称:名称8
- 价值:13
在http:// py上了解有关pyparsing的更多信息 prosing.wikispaces.com. - 保罗
# 回答2

你好, 我一直在寻找解决方案. 我是新手 导入 对于re.finditer中的匹配(" _([\ w]+):_(\ d+)",文本): print match.groups()[0],match.groups()[1] 对于re.finditer中的匹配("日期:([^=]+)=",text): 打印Match.groups()[0] 对于re.finditer中的匹配("(\ w+):(\ d+)",文本): print match.groups()[0],match.groups()[1] 现在您有两个问题:) hth, - - miki http://pythonwise.blogspot.com(_@_ _)

标签: python

添加新评论