如何在python中提取文件数据
我想根据标记从给定字符串中提取日期 我的绳子是-如何在python中提取文件数据,python,python-2.7,Python,Python 2.7,我想根据标记从给定字符串中提取日期 我的绳子是- DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017 NUMBER: 201707250008754 RATE: 10.00 我想要这样的东西- 如果我给出“日期”,则应仅返回2017年7月25日 如果我给出“返回日期”,它应该返回2017年7月26日 如果我给出“数字”,它应该返回201707250008754 等等 如何在Python 2.7中实现这一点(注意:字符串
DATE: 7/25/2017 DATE OPENED: 7/25/2017 RETURN DATE: 7/26/2017
NUMBER: 201707250008754 RATE: 10.00
我想要这样的东西-
如果我给出“日期”,则应仅返回2017年7月25日
如果我给出“返回日期”,它应该返回2017年7月26日
如果我给出“数字”,它应该返回201707250008754
等等
如何在Python 2.7中实现这一点(注意:字符串中的日期和数字总是随机的“您可以使用
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
使用
dict
将键(例如:“日期”)映射到其值
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])
如果您的问题是针对Python2的,请不要添加Python3标记。我将从编写一些代码开始。到目前为止,您尝试了什么?