Discuss / Python / 亲手请教如何写一个Python程序按固定要求筛选同时符合两个文本条件的值,最好有详细说明每一步,谢谢!

亲手请教如何写一个Python程序按固定要求筛选同时符合两个文本条件的值,最好有详细说明每一步,谢谢!

文件A的内容:

打万芳的手机#Phone_CallNameWithType#CONTACT_NAME;PHONE_TYPE#万芳;手机

文件A 后面还有N行,无法直接用取行数来判断循环量

文件B的内容: input = 打万芳的手机 output = { "_resultType": "Sem", "_topics": [{ "_name": "Phone_CallNameWithType", "_score": 9974,

文件B 后面还有N行,无法直接用取行数来判断循环量

要求:

先用文件A里第一个值:打万芳的手机到文件B里搜索input的值,查 看是否相等:

不等则继续搜索文件A的下一条数据;

如果相等再用文件A第二个值:Phone_CallNameWithType到文件B搜索output里的_topics的name值,对比两个是否相等:

如果相等则取_topics的_score值:9974,并把score的值写到新的文本 C.txt中 不等则回到文件A继续搜索下一条数据

现需按要求把符合条件的score值写到新文本即可

灰_手

#2 Created at ... [Delete] [Delete and Lock User]

用文件生成器的方式应该可以,input后面的在B文件一定能找到匹配的吗?

input是B文件的,它的值在A文件里基本上可以找到,如果找不到,直接继续寻找下一条记录就好了

文件生成器是什么?

灰_手

#5 Created at ... [Delete] [Delete and Lock User]

文件有多大?AB文件内容出现的顺序是一样的吗?B文件的input的内容是否一定在A文件找得到相匹配的条目?

def file_generator(file_name):
    with open(file_name, 'r') as f:
        for line in f:
            yield line[:-1]

file_A = file_generator('A.txt')
for idx, line in zip(range(1, 5), file_A):
    print('line_%s: %s' % (idx, line))

line_5 = next(file_A)

这样可以对文件一行一行地操作什么的,随时终止或继续,把AB文件发出来看看吧。

很抱歉,这几天都比较忙,然后现在才看到你的回复,非常感谢你的帮助,而且我现在也特别需要帮助,很高兴你能伸出援手,(^__^)

我能加一下你的联系方式吗?任何都可以,QQ,微信,或者邮箱都行,这样方便我们沟通可以吗?谢谢! 我把我的QQ和邮箱都留下,如果可以的话麻烦你联系一下我 QQ:815348853(需要回复答案,答案是:观宇) 126邮箱:minner116@126.com


  • 1

Reply