首页 > 解决方案 > 如何基于多个分隔符(连续的空格)进行分隔

问题描述

我有一个看起来像这样的 txt

Layer_00 : 3.46ms   Layer_01 : 3.40ms   Layer_02 : 3.56ms   Layer_03 : 3.49ms   Layer_04 : 3.44ms
Layer_05 : 3.45ms   Layer_06 : 3.44ms   Layer_07 : 3.46ms   Layer_08 : 3.45ms   Layer_09 : 3.48ms
Layer_10 : 3.48ms   Layer_11 : 3.48ms   Layer_12 : 3.57ms   Layer_13 : 3.54ms   Layer_14 : 3.60ms
Layer_15 : 3.58ms   Layer_16 : 3.59ms   Layer_17 : 3.57ms   Layer_18 : 3.55ms   Layer_19 : 3.57ms
Layer_20 : 3.58ms   Layer_21 : 3.57ms   Layer_22 : 3.52ms   Layer_23 : 3.56ms   Layer_24 : 3.47ms

我想用 ':' 和 3 个连续的空格分隔它们
有谁知道如何实现它?
我试过了

pd.read_csv('text.txt', sep = '[:,   ]', header = None) 

但它似乎不起作用。

标签: pythonpandascsv

解决方案


只需手动处理它们。 pandas.read_csv很方便,但只有当您的数据恰好与它可以读取的格式匹配时才有效。

import re
data = []
for line in open('text.txt'):
    data.append( re.split(r'\s[\s:]\s', line.rstrip()) )
df = pd.DataFrame(data)

推荐阅读