如何将带指定时间前缀的字符串列表转换为(time, data)格式的元组列表
实现方案
直接使用字符串拆分即可完成需求,完整可运行代码如下:
result = [] # 替换为你的实际txt文件路径 with open("your_file.txt", "r", encoding="utf-8") as f: # 逐行读取内容 for line in f.readlines(): cleaned_line = line.strip() # 跳过空行 if not cleaned_line: continue # 仅拆分第一次出现的分隔符,避免数据段被误切割 time_info, raw_data = cleaned_line.split(" - b", 1) # 可根据需要调整首尾字符处理逻辑,比如去掉数据段开头的单引号 result.append((time_info.strip(), raw_data.strip()))
说明
- 核心逻辑用
str.split的第二个参数控制拆分次数,比正则表达式实现更高效,适合固定分隔符的场景。如果分隔符前后存在不确定数量的空白符,可以改用正则拆分:import re # 其余逻辑不变,替换拆分行为 time_info, raw_data = re.split(r"\s*-\s*b", cleaned_line, 1) - 你之前的代码报错原因:遍历列表时直接迭代得到的是列表元素本身,不是索引,不需要再加
b[i]取值,正确写法是直接把迭代得到的元素传入拆分方法。
内容的提问来源于stack exchange,提问作者Rutchtus
相关产品推荐
相关产品推荐

