【问题标题】:Compare file pattern in file比较文件中的文件模式
【发布时间】:2016-11-21 11:57:59
【问题描述】:

如何将一个文件与另一个文件中的模式进行比较

  • 带有模式的文件 (patterns.txt)

    pattern1
    pattern2
    pattern3
    
  • 文件(file.txt)

    something1
    something3
    pattern1
    something4
    something5
    pattern2
    something6
    pattern3
    something7
    
  • 脚本

    #!/usr/bin/python
    
    import sys
    
    patternFile = sys.argv[1]
    fileName = sys.argv[2]
    
    with open(patternFile, 'r') as file_open:
        for pattern in file_open:
                with open(fileName, 'r') as file_to_compare:
                        if pattern in file_to_compare:
                                print pattern
    

它不工作;我错过了什么?

./searchPattern.py patterns.txt file.txt

谢谢

【问题讨论】:

  • 什么不起作用,请发布您的错误消息
  • 这就是问题,我没有得到错误!我没有收到任何答案,它在文件中不匹配

标签: python compare


【解决方案1】:

你有没有尝试过这样的事情:

patternList = open(patternFile, 'r')
patternListLines = patternList.readlines() 
fileTXT = open(fileName , 'r')

def checkPattern(patternList ,x):
    if x in patternList:
        return True

matchPattern=[x for x in fileTXT.readlines() if checkPattern(patternList, x)]

【讨论】:

    【解决方案2】:
    • 我没有,但它现在正在工作。

    • 我在 file_to_compare 中添加了 for 行:

    • 现在工作了!

    脚本:

    #!/usr/bin/python 
    import sys 
    patternFile = sys.argv[1] 
    fileName = sys.argv[2] 
    with open(patternFile, 'r') as file_open: 
        for pattern in file_open: 
            with open(fileName, 'r') as file_to_compare: 
                for line in file_to_compare: 
                    if pattern in line: print pattern 
    
    ./searchPattern.py patterns.txt file.txt 
    pattern1 
    pattern2 
    pattern3
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多