如何在python中提取文件数据

时间:2018-06-01 13:55:30

标签: python python-2.7

我想根据标签从给定字符串中提取日期。

我的字符串是 -

DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 
NUMBER: 201707250008754 RATE:  10.00

我想要这样的事情 - 如果我提供“DATE”,则应仅返回7/25/2017

如果我提供“RETURN DATE”,它应该返回7/26/2017

如果我提供“NUMBER”,则应返回201707250008754 等等。

我们如何在Python 2.7中实现这一点(注意:日期和数字在字符串“

中始终是随机的

2 个答案:

答案 0 :(得分:3)

您可以使用re

从字符串的内容创建字典
import re
s = 'DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 NUMBER: 201707250008754 RATE: 10.00'
results = re.findall('[a-zA-Z\s]+(?=:)|[\d/\.]+', s)
d = dict([re.sub('^\s+', '', results[i]), results[i+1]] for i in range(0, len(results), 2))
for i in ['DATE', 'RETURN DATE', 'NUMBER']:
   print(d[i])

输出:

7/25/2017
7/26/2017
201707250008754

答案 1 :(得分:1)

使用dict将关键字(例如:' DATE')映射到其值。

import re
s = '''DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 NUMBER: 201707250008754 RATE:  10.00'''

items = re.findall('\s*(.*?)\:\s*([0-9/.]*)',s)
#[('DATE', '7/25/2017'), ('DATE OPENED', '7/25/2017'), ('RETURN DATE', '7/26/2017'), ('NUMBER', '201707250008754'), ('RATE', '10.00')]

info = dict(items)
#{'DATE': '7/25/2017', 'DATE OPENED': '7/25/2017', 'RETURN DATE': '7/26/2017', 'NUMBER': '201707250008754', 'RATE': '10.00'}


for key in ['DATE', 'RETURN DATE', 'NUMBER']:
    print(info[key])
相关问题