python逐行读取txt文件 每行为一个list

2023-12-16 03:50:38
推荐回答(2个)
回答1:

#!/usr/bin/env Python
# coding=utf-8

import re
# 你的文件路径
path = "./tags.txt"
# 读取文件
file = open(path, encoding="utf-8")
# 定义一个用于切割字符串的正则
seq = re.compile("\s+")

result = []
# 逐行读取
for line in file:
    lst = seq.split(line.strip())
    item = {
        "name": lst[0],
        "val": lst[1:]
    }
    result.append(item)
# 关闭文件    
file.close()
print(result)
# 输出结果类似:
[
    {
       "name":1,
       "val": ["v1","v2"]
    },
    {
       "name":2,
       "val": ["v1","v2"]
    }
]

回答2:

import re
patt = re.compile(r"(?P\d+)\s+(?P.*)")
fmt = "{%(tags)s}"
with open("tags.txt", 'rt') as handle:
    for m in ifilter(None, imap(patt.match, handle)):
        print fmt % m.groupdict()