修改Python列中的数据
嗨伙计们我有一个这样的专栏修改Python列中的数据,python,string,Python,String,嗨伙计们我有一个这样的专栏 Start Start = 11122001 Start = 12012014 Start = 23122001 我想将“Start=”和日期格式删除到 Start 11/12/2001 12/01/2014 23/12/2001 如何正确执行此操作?这取决于您正在尝试执行的操作 如果要从每行中删除Start=: lines = [ format_date(re.sub("^Start =", '', line)) for line in lin
Start
Start = 11122001
Start = 12012014
Start = 23122001
我想将“Start=”和日期格式删除到
Start
11/12/2001
12/01/2014
23/12/2001
如何正确执行此操作?这取决于您正在尝试执行的操作 如果要从每行中删除
Start=
:
lines = [ format_date(re.sub("^Start =", '', line)) for line in lines ]
(假设您的文本在列表中逐行显示)
要格式化日期,您需要实现函数format\u date
将日期从11122001
转换为11/12/2001
根据输入格式的不同,有几种方法可以做到这一点。
解决方案之一:
def format_date(x):
if re.match(x, '[0-9]{8}'):
return "/".join([x[:2], x[2:4], x[4:]])
else:
return x
首先检查行是否与日期表达式匹配(看起来像日期),
如果有,重写它。否则就按原样退回
当然,您可以在一行中组合解决方案
根本不用函数,但在这种情况下
这就不那么清楚了
另一种基于地图的解决方案:
def format_line(x):
x = re.sub("^Start =", '', line)
if re.match(x, '[0-9]{8}'):
return "/".join([x[:2], x[2:4], x[4:]])
else:
return x
map(format_line, lines)
这取决于你想做什么 如果要从每行中删除
Start=
:
lines = [ format_date(re.sub("^Start =", '', line)) for line in lines ]
(假设您的文本在列表中逐行显示)
要格式化日期,您需要实现函数format\u date
将日期从11122001
转换为11/12/2001
根据输入格式的不同,有几种方法可以做到这一点。
解决方案之一:
def format_date(x):
if re.match(x, '[0-9]{8}'):
return "/".join([x[:2], x[2:4], x[4:]])
else:
return x
首先检查行是否与日期表达式匹配(看起来像日期),
如果有,重写它。否则就按原样退回
当然,您可以在一行中组合解决方案
根本不用函数,但在这种情况下
这就不那么清楚了
另一种基于地图的解决方案:
def format_line(x):
x = re.sub("^Start =", '', line)
if re.match(x, '[0-9]{8}'):
return "/".join([x[:2], x[2:4], x[4:]])
else:
return x
map(format_line, lines)
答案不完整。您还应该提到,如何在数字之间引入
/
。@niyasc:Fixed。谢谢你的评论,答案不完整。您还应该提到,如何在数字之间引入/
。@niyasc:Fixed。谢谢你的评论