日志分析项目:如何提取指定格式的日期时间字符串而非列表?
问题解决:把日志提取的日期列表转为目标字符串格式
问题根源
你代码里的return complete_date[0:3]返回的是列表切片,也就是包含三个元素的列表(比如['MM', 'DD', 'HH:MM:SS']),这就是为什么结果始终是列表形式,而非你要的字符串。
修复代码
用字符串的join()方法,把切片得到的三个元素用空格拼接成一个完整字符串就行:
def get_complete_date(line): """ Pre : line est une ligne de log bien formée (str) Post : Retourne la date et l'heure sous forme de chaine de caractère sans changer le format. """ complete_date = line.split(" ") # 将前三个元素用空格拼接成目标格式的字符串 return ' '.join(complete_date[0:3])
额外优化建议
如果日志行开头可能有多余空格,或者想减少不必要的分割操作,可以用不带参数的split()(自动处理任意空白符),同时限制分割次数:
def get_complete_date(line): """ Pre : line est une ligne de log bien formée (str) Post : Retourne la date et l'heure sous forme de chaine de caractère sans changer le format. """ # 只分割前3个空白分隔的元素,避免后续无效分割 parts = line.split(maxsplit=3) return ' '.join(parts[:3])
修改后函数会直接返回"MM DD HH:MM:SS"格式的字符串,符合你的需求。
内容的提问来源于stack exchange,提问作者MLK
相关产品推荐
相关产品推荐

