Python读取多分隔符txt/csv文件、剔除索引拆分数据列如何实现
Python实现该文本处理需求的两种方案
方案1:纯Python原生实现(无第三方依赖)
思路:逐行读取文件后先按冒号分割丢弃开头索引段,再通过正则匹配同时按逗号、分号拆分剩余内容,转成浮点型数值即可。
import re # 存储最终处理后的数据 processed_data = [] with open("你的文件路径.txt", "r", encoding="utf-8") as f: for line in f: line = line.strip() # 跳过空行 if not line: continue # 按第一个冒号分割,取后半段数据部分 data_part = line.split(":", 1)[1] # 按逗号或分号拆分所有数值,转成浮点型 row_values = [float(i) for i in re.split(r"[,;]", data_part)] processed_data.append(row_values) # 查看处理结果 for row in processed_data: print(row)
处理后每行对应6个独立的数值列,示例输出:[0.84722, 0.52855, 0.65268, 0.24792, 0.66525, 0.46562]
方案2:Pandas实现(适合后续需做数据统计分析的场景)
思路:直接利用pandas读取文件时的正则分隔符能力,同时匹配冒号、逗号、分号作为分隔符,读取后直接丢弃第一列索引列即可完成处理。
import pandas as pd # 读取文件,指定多分隔符匹配规则,无表头 df = pd.read_csv("你的文件路径.txt", sep=r"[:,;]", header=None, engine="python") # 丢弃第一列的索引字段 df = df.drop(columns=0) # 可选:自定义列名 df.columns = [f"列_{i+1}" for i in range(df.shape[1])] print(df)
补充说明
- 大文件处理优先选原生逐行读取方案,内存占用更低
- 中小规模数据选Pandas方案更便捷,可直接对接后续的数据清洗、计算逻辑
内容的提问来源于stack exchange,提问作者Cristina Dominguez Fernandez
相关产品推荐
相关产品推荐

