字符串切片,分隔符长度变化


可能

很简单,但我现在还没有找到解决方案。我导入 python 的文本文件具有空格分隔的结构,例如

20.06.2009 05:00:00        2.6
20.06.2009 06:00:00       21.5

我想将其拆分为时间和值变量。切片时间分量很简单

time = ""
value = ""
for i in lines:
    time += i[0:20]

但是我找不到值组件的解决方案,因为它主要包含 3 位数字,但有时包含 4 位数字,因此空格分隔符的数量在时间和值之间变化(这就是 re 包在这里不起作用的原因)。有什么解决办法吗?

您可以使用字符串上的rsplit(' ', 1)根据字符串中最后一次出现的空格进行拆分:

所以你可以做:

x = '20.06.2009 05:00:00        2.6'
y = '20.06.2009 06:00:00       21.5'
items = [x, y]
value = 0
for item in items:
    value += float(item.rsplit(' ', 1)[1])
print(value)

输出

24.1

您可以使用删除所有空格的 strip 函数:

number += float(i[21:].strip())

如果行尾有空格,这也有效。

还有拆分的.split()函数每个空间都有一行,比如字符或任何你需要的东西。

您可以使用

list1 = x.split(' ') .split()整行。你最后得到的是一个列表。

list1 = ['20.06.2009', '05:00:00', '        2.6']

因此,您可以在第 3 个元素上查找空格并用.replace()摆脱 em

最新更新