Python读取txt文件 -> 列表

2024-09-30 08:14:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个.txt文件,我想得到一个列表中的值。 txt文件的格式应为:

value0,timestamp0
value1,timestamp1
...
...
...

最后我想得到一份

^{pr2}$

我知道通过

direction = []
for line in open(filename):
    direction,t = line.strip().split(',')
    direction = float(direction)
    t = long(t)
    direction.append([direction,t])
return  direction

但我有一个大问题:在创建数据时,我忘记在每一行中插入一个“\n”。在

这就是为什么我有这样的格式:

value0, timestamp0value1,timestamp1value2,timestamp2value3.....

每个时间戳都有13个字符。在

有没有一种方法可以按我的要求在列表中获取这些数据?很难再得到数据。在

谢谢 最大


Tags: 文件数据intxt列表for格式line
3条回答

我用你的例子编写了一个quickie,没有使用13而是len(“timestamp”),这样你就可以适应了

instr = "value,timestampvalue2,timestampvalue3,timestampvalue4,timestamp"

previous_i = 0
for i,c in enumerate(instr):
    if c==",":
        next_i = i+len("timestamp")+1
        print(instr[previous_i:next_i])
        previous_i = next_i

输出解扰:

^{pr2}$
import re
input = "value0,0123456789012value1,0123456789012value2,0123456789012value3"

for (line, value, timestamp) in re.findall("(([^,]+),(.{13}))", input):
    print value, timestamp

您必须去掉最后一个字符,但可以在逗号后面每隔13个字符插入一个逗号:

import re
s = "-0.1351197,1466615025472-0.25672746,1466615025501-0.3661744,1466615025531-0.4646‌​7665,1466615025561-0.5533287,1466615025591-0.63311553,1466615025621-0.7049236,146‌​6615025652-0.7695509,1466615025681-1.7158673,1466615025711-1.6896278,146661502574‌​1-1.65375,1466615025772-1.6092329,1466615025801"

print(re.sub("(?<=,)(.{13})",r"\1"+",", s))

这会给你:

^{pr2}$

相关问题 更多 >

    热门问题