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

文件tags.txt,里第一列是image id,后面是image的tags,我现在想逐行读取,每行除了第一列的image id的tags存为一个list,list名定义为image id。比如,第一行的数据是:17991735034 great art tram llandudno k5 sigma 1750我想存成{great art tram llandudno k5 sigma 1750} listName=17991735034或者除去第一列,给每一个list编号也可以list1={great art tram llandudno k5 sigma 1750} 以此存完每一行

#!/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"]
    }
]

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-10
import re
patt = re.compile(r"(?P<linename>\d+)\s+(?P<tags>.*)")
fmt = "{%(tags)s}"
with open("tags.txt", 'rt') as handle:
    for m in ifilter(None, imap(patt.match, handle)):
        print fmt % m.groupdict()

本回答被网友采纳