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

文件tags.txt,里第一列是imageid,后面是image的tags,我现在想逐行读取,每行除了第一列的imageid的tags存为一个list,list名定义为i... 文件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} 以此存完每一行 展开
 我来答
哦_廿一
2017-06-13 · TA获得超过431个赞
知道小有建树答主
回答量:273
采纳率:91%
帮助的人:230万
展开全部
#!/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"]
    }
]
tim_spac
2015-07-10 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2011万
展开全部
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()
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式