【问题标题】:How to find a specific line of text in a text file with python?如何使用python在文本文件中查找特定的文本行?
【发布时间】:2016-06-29 00:59:09
【问题描述】:
def match_text(raw_data_file, concentration):
    file = open(raw_data_file, 'r')
    lines = ""
    print("Testing")
    for num, line in enumerate(file.readlines(), 0):
        w = ' WITH A CONCENTRATION IN ' + concentration
        if re.search(w, line):
            for i in range(0, 6):
                lines += linecache.getline(raw_data_file, num+1)
                try:
                    write(lines, "lines.txt")
                    print("Lines Data Created...")
                except:
                    print("Could not print Line Data")
        else:
            print("Didn't Work")

我正在尝试打开一个 .txt 文件并搜索特定字符串。

【问题讨论】:

  • 那么你卡在哪里了?不确定在哪里需要帮助
  • 您为什么不添加一个示例并展示哪些有效,哪些无效。
  • 好吧,上面的例子不会进入 if 语句,基本上,我无法让 if 语句匹配我想要的模式,即 "w = ' WITH A CONTENTRATION IN... '
  • 你遇到了一些奇怪的事情,比如使用 linecache 以及任何“写”应该做的事情。您是否只是想获取所有带有' WITH A CONCENTRATION IN ' + concentration 的行? concentration 是什么?是正则表达式吗?
  • 特德莱尼说的。 linecache.getline 是做什么的?另外,for i in range(0, 6) 循环是做什么用的?

标签: python regex python-3.x python-3.5 pdf-scraping


【解决方案1】:

解决了我自己的问题。以下是查找特定行并获取匹配行之后的行。

def match_text(raw_data_file,match_this_text): w = match_this_text 行 = "" 使用 open(raw_data_file, 'r') 作为 inF: 对于 inF 中的行: 如果 w 在行: lines += line //将匹配的文本添加到lines字符串中 对于我在范围内(0,然而_many_lines_after_matched_text): 行 += 下一个(inF) //用'lines'做一些事情,这是最终的多行文本

这将返回多行加上用户想要的匹配字符串。如果问题令人困惑,我深表歉意。

【讨论】:

    【解决方案2】:

    如果您只是尝试将所有包含字符串的行写入文件,则可以这样做。

    def match_text(raw_data_file, concentration):
        look_for = ' WITH A CONCENTRATION IN ' + concentration
        with open(raw_data_file) as fin, open('lines.txt', 'w') as fout:
            fout.writelines(line for line in fin if look_for in line)
    

    【讨论】:

    • 这行得通,谢谢。这个问题对我来说措辞很糟糕。我解决了我自己的问题。我正在寻找另一个步骤。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多