我正在开发一个以pdf格式读取列表并将列表转换为.csv文件的项目,但是当我读取pdf时,文本传递给字符串,直到我没有问题,但我有每当我找到日期时输入"\n"
,例如:
喜欢字符串:
'HELDER ALVES DE OLIVEIRA18/06/1986RENAN ALVES DE OLIVEIRA06/08/2005'
我想要的:
'HELDER ALVES DE MEDEIROS;18/06/1986\NRENAN ALVES DE OLIVEIRA;06/08/2005\N'
因此,当我打开文件时,.csv将被列表。
答案 0 :(得分:3)
您可以使用regular expressions:
执行此操作>>> import re
>>> s = 'HELDER ALVES DE OLIVEIRA18/06/1986RENAN ALVES DE OLIVEIRA06/08/2005'
>>> re.sub('(\d\d\/\d\d/\d\d\d\d)', '\\1\n',s)
'HELDER ALVES DE OLIVEIRA18/06/1986\nRENAN ALVES DE OLIVEIRA06/08/2005\n'
答案 1 :(得分:0)
我认为您应该更好地使用re
模块的强大功能,正如Jules Mazur对前一个答案的评论所指出的那样,您需要设置某种过滤无效日期,这是一个例子:
>>> s
'HELDER ALVES DE OLIVEIRA18/06/1986RENAN ALVES DE OLIVEIRA06/08/2005'
>>>
>>> re.findall(r'((?:[1-2][0-9]|0[1-9]|3[0-1])/(?:0[0-9]|1[0-2])/(?:[1-2][0-9][0-9][0-9]))', s)
['18/06/1986', '06/08/2005']
>>>
>>> re.sub(r'(?P<Date>(?:[1-2][0-9]|0[1-9]|3[0-1])/(?:0[0-9]|1[0-2])/(?:[1-2][0-9][0-9][0-9]))', '\g<Date>\n', s)
'HELDER ALVES DE OLIVEIRA18/06/1986\nRENAN ALVES DE OLIVEIRA06/08/2005\n'
您可以在此regex demo中查看详细说明。
此外,您还可以在正则表达式库中找到更多有关日期和时间的re
模式