【问题标题】:Python code for searching .txt file. Print lines containing words in parantheses用于搜索 .text 文件的 Python 代码。打印包含括号中的单词的行
【发布时间】:2014-11-09 21:48:55
【问题描述】:

我认为我的正则表达式函数是错误的。我得到一个错误。我希望程序逐行读取 .txt 文件并仅打印不包含括号中的单词的行。 这是我使用的代码。

import os
infile=open("/Users/Julio/Desktop/database.txt", "r")

for line in infile:
    if not re.search('(')

     print(line, end='')

infile.close()  

【问题讨论】:

  • 阅读基本的regex tutorial first
  • 谢谢,我想这会有所帮助
  • 我仍然不确定如何编辑代码以使其工作。有人能指出什么问题吗?
  • @JulioHans 我相信你必须向 re.search() 添加第二个参数。试试看,但我不太确定。 re.search('(', infile).
  • 标题和第三句在您是否要打印包含或不包含任何内容的行方面相互矛盾。但是,代码差异只会是not

标签: python regex python-3.x


【解决方案1】:

对于像匹配单个字符这样简单的事情,为什么不避免使用正则表达式并执行以下操作:

with open("database.txt","rt") as f:
    for line in f:
        if "(" not in line:
            print(line)

【讨论】:

  • 非常感谢,这对我有帮助:)
【解决方案2】:

不使用正则表达式的解决方案,并在括号中查找单个单词。除非必须,否则尽量避免使用正则表达式。

for line in file_text.split("\n"):
    for word in line.split(" "):
        paren_flag = True if word[0] == "(" and word[len(word) - 1] == ")" else False
    if not paren_flag:
        print(line)

有些人在遇到问题时会想 “我知道,我会使用正则表达式。”现在他们有两个问题。

注意:我希望您问的是如何查找括号中的单个单词,因为您的问题在回答时/不清楚。

【讨论】:

  • 谢谢,我只是在寻找“(”。括号本身。
  • @JulioHans 啊,在这种情况下,您应该编辑您的问题以使其更清晰。也许“我想看看括号是否在一行中”
猜你喜欢
  • 2017-02-26
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 2014-12-11
  • 1970-01-01
相关资源
最近更新 更多