【问题标题】:Python compare two files using a listPython使用列表比较两个文件
【发布时间】:2018-08-01 17:54:00
【问题描述】:

我试图通过正则表达式字符串比较两个文件并打印输出。我的循环似乎有问题,因为只有最后一行被打印出来。我错过了什么?

 import re
 delist = [r'"age":.*",',r'"average":.*",',r'"class":.*",']
 with open('test1.txt', 'r') as bolo:
    boloman = bolo.read()
 for dabo in delist:
    venga = re.findall(dabo, boloman)
    for vaga in venga:
    with open ('test.txt', 'r' ) as f:
       content = f.read()
       venga2 = re.findall(dabo, content)
       for vaga2 in venga2:
          mboa = content.replace(vaga2,vaga,1)

  print (mboa)

【问题讨论】:

  • 我不太确定,但我认为“mboa = content.replace(vaga2,vaga,1)”行导致错误,因为它替换了 mboa 中的内容。所以它取出了除了最后一行之外的所有内容??

标签: python regex python-2.7 loops


【解决方案1】:

起初,我看到的一个问题是您总是将 mboa 设置为唯一的结果。我认为您真正想做的是创建一个列表并将其附加到该列表中。

import re

mboa = []
delist = [r'"age":.*",',r'"average":.*",',r'"class":.*",']
with open('test1.txt', 'r') as bolo:
  boloman = bolo.read()
  for dabo in delist:
    venga = re.findall(dabo, boloman)
    for vaga in venga:
      with open ('test.txt', 'r' ) as f:
        content = f.read()
        venga2 = re.findall(dabo, content)
        for vaga2 in venga2:
          mboa.append(content.replace(vaga2,vaga,1))
print (mboa)

这能解决问题吗?如果它没有对这个问题添加评论,我会尝试解决它;)

【讨论】:

  • 感谢您的帮助。您提供的列表方法添加了 \n 并给出了多个打印件。
  • 好的,打印出来的效果符合预期吗?您想以特定格式显示它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-27
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
相关资源
最近更新 更多