Python从给定R中按列标题提取文本

2024-10-01 02:31:38 发布

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

我从多封电子邮件中创建了一个文本文件。在

下面三个元组中的每一个都是从不同的电子邮件和发件人写入到文本文件中的。在

Cusip     NAME              Original Current Cashflow Collat Offering
362341D71 GSAA 2005-15 2A2   10,000   8,783  FCF       5/25  65.000
026932AC7 AHM 2007-1 GA1C    9,867    7,250  Spr Snr   OA    56.250 

Name            O/F    C/F    Cpn  FICO CAL WALB  60+    Notes             Offer
CSMC 06-9 7A1   25.00  11.97  L+45  728  26  578  35.21  FLT,AS,0.0%       50-00
LXS 07-10H 2A1  68.26  34.01  L+16  744   6  125  33.98  SS,9.57%          39-00`

CUSIP      Name               BID   x Off       SIZE   C/E    60++  WAL   ARM  CFLW
86360KAA6  SAMI 06-AR3 11A1   57-00 x 59-00     73+MM  46.9%  67.0%  65   POA  SSPT
86361HAQ7  SAMI 06-AR7 A12    19-08 x 21-08     32+MM  15.4%  61.1%  61   POA SRMEZ

通过'Name'我需要一种方法来提取价格信息(Price info=单词'Offering'、'Off'和'Off'下面的数据)。此过程将在整个文本文件中复制,提取的数据(“名称”和“价格”)将通过XLWT写入excel文件。请注意,价格数据的格式因元组而异。在


Tags: 数据name电子邮件价格current元组mm文本文件
2条回答

只需使用csv模块。 对你的数字使用好的格式

这种格式的设置有点棘手,因为您的名字可能有空格,这会使csv难以使用。解决这一问题的一种方法是使用第一列通过regex获取感兴趣的列的位置和宽度。你可以试试这样的方法:

import re

for email in emails:
    print email
    lines = email.split('\n')
    name = re.search(r'name\s*', lines[0], re.I)
    price = re.search(r'off(er(ing)?)?\s*', lines[0], re.I)
    for line in lines[1:]:
        n = line[name.start():name.end()].strip()
        p = line[price.start():price.end()].strip()
        print (n, p)
    print

这假设emails是一个列表,其中每个条目都是一个电子邮件。输出如下:

^{pr2}$

相关问题 更多 >