昨晚考试的结果是我有一个很长的文本文件。愚蠢的是,我忘了用"\n"
正确地格式化它。一个样本是:
"01-someText151645.txt,Wed Feb 1 16:15:18 2012,1328112918.57801-HalfMeg151646.txt,Wed Feb 1 16:15:18 2012,1328112918.578"... on and on.
正如您所看到的,epoch时间戳的结尾和文本文件名之间没有空格。幸运的是,每个文本文件都以两个数字和一个连字符开头。所以上面的例子应该是这样的:
01-someText151645.txt,Wed Feb 1 16:15:18 2012,1328112918.578 01-someText151646.txt,Wed Feb 1 16:15:18 2012,1328112918.578
不幸的是,之前的一个项目,我有很多正则表达式解析是不手,因此需要一个小帮助,为这个正则表达式。我的计划是用re.findall(regex, sample)
来获取我想要的信息。
编辑:只是明确地说每一行有一个文本文件名、一个日期和纪元时间戳,都用“,”隔开(没有空格)。每个文件以2位数字和连字符开头。那就是:textfile,date,epoch
,textfile=digit,digit,-
这里,试试这个:
这将匹配(紧密但松散)文件名的格式。你可以适应你的需要。
对此进行拆分,然后相应地分离文件。
如果您的文件足够小,可以同时将其读入内存,那么您只需在lookahead regex上对其进行拆分
或者在它们所属的地方插入新行
以下是我总结出来的,利用它来适应:
当然,它假设
\d{2}-
匹配对于行首是唯一的。如果它们可能出现在行中,例如文件名中,请提及它,我将编辑此答案以适应编辑:如果不想将整个文件读入内存,可以使用缓冲区:
如果错误检查和效率是必需的,则不应使用此选项。据我所知,这是一个非常受控制的非正式环境
相关问题 更多 >
编程相关推荐