python简单文本处理

有一个a.txt存储有(以“_”隔开,数字维数一致都为100维)中国_1234美国_2345人_1345另有一个b.txt存储有美国人中国人法国人要求生成一个新的c.tx... 有一个a.txt存储有(以“_”隔开,数字维数一致都为100维)

中国_1 2 3 4
美国_2 3 4 5
人_1 3 4 5
另有一个b.txt存储有
美国 人
中国 人
法国 人

要求生成一个新的c.txt存放两个向量的和
美国 人_3 6 8 10
中国 人_2 5 7 9
法国 人_1 3 4 5
德国 总理_0
展开
 我来答
kwydwuf
推荐于2016-06-05 · TA获得超过7411个赞
知道大有可为答主
回答量:1527
采纳率:71%
帮助的人:2017万
展开全部

最后结果中的 德国 总理那一行不知道怎么来的,应该在 b.txt 中有同样的前缀才对。


data = dict()

# process a.txt
for line in open("a.txt", "r"):
    k, s, v = line.partition("_")
    if s != "_":
        continue
    data[k.strip()] = [int(x) for x in v.split()]

def sum(a, b):
    result = []
    maxlen = max(len(a), len(b))
    for i in range(maxlen):
        v1 = a[i] if i < len(a) else 0
        v2 = b[i] if i < len(b) else 0
        result.append(v1 + v2)
    return result
    
# generate c.txt
fd = open("c.txt", "w")
for line in open("b.txt", "r"):
    line = line.strip()
    if len(line) == 0:
        fd.write("\n")
        continue

    result = []
    for k in line.split():
        result = sum(result, data.get(k, [0]))
    fd.write("{}_{}\n".format(line, ' '.join([str(i) for i in result])))

fd.close()
黑板客
2015-04-17 · TA获得超过469个赞
知道小有建树答主
回答量:193
采纳率:100%
帮助的人:192万
展开全部
问题不难,就是描述不完整,文件b描述没看到有向量,是和a文件格式一样吗,能否把文件a,b贴上来呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式