代码之家  ›  专栏  ›  技术社区  ›  Bogdan Janiszewski

在python中搜索文本文件中的字符串

  •  0
  • Bogdan Janiszewski  · 技术社区  · 8 年前

    def my_function(filename, variable2, variable3, variable4):
    array1 = []
    
    with open(filename) as a:
        special_string = str('info       %d        info =*' %variable3)
        for line in a:
            if special_string == array1:
                array1 = [next(a) for i in range(9)]
                line = next(a)    
                break
            elif special_string != c:
                c = line.strip()
    

    special_string info = 可以变化,所以我尝试放置一个通配符运算符,如上图所示。运行函数的唯一方法是输入要搜索的字符串,包括等号后面的所有内容,如下所示:

    special_string = str('info         %d       info = more_stuff' %variable3)
    

    如何将通配符运算符分配给字符串的其余部分,以使函数更健壮?

    2 回复  |  直到 8 年前
        1
  •  1
  •   motjuste    8 年前

    如果你的特殊字符串 发生在行的开头,然后可以使用下面的检查(其中 special_string 没有 * 最后):

    line.startswith(special_string)
    

    module re in the standard library 用于处理正则表达式。

        2
  •  1
  •   Carlos    8 年前

    根据您的输入,我假设如下:

    variable3 = 100000
    special_string = str('info         %d       info = more_stuff' %variable3)
    
    import re
    pattern = re.compile('(info\s*\d+\s*info\s=)(.*)')
    output = pattern.findall(special_string)
    print(output[0][1])
    

    more_stuff